发表于: 2020-04-20 23:59:12

3 1363


Mybatis连接数据库

初次使用坑挺多的,主要是通过上网搜索资料学习,花了很多时间纠错。

项目目录如下:

写了一个特别简单的查询例子,先跑通代码再说

Mybatis.java

package cn.mogeek.mybatis;

import cn.mogeek.domain.Disciple;
import cn.mogeek.testJDBC.JDBCUtil;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class Mybatis {
public void querry() throws IOException{
InputStream inputStream = Mybatis.class.getClassLoader().getResourceAsStream("mybatis-config.xml");

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession session = sessionFactory.openSession();

Disciple disciple = session.selectOne("mapper.discipleMapper.getDisciple", 8886);
System.out.println(disciple.getName());
}
}

配置文件:

db.properties(之前做任务用到过)

jdbc.url = jdbc:mysql://localhost:3306/school
jdbc.user = root
jdbc.passwd = mogeek666
jdbc.driverClass = com.mysql.jdbc.Driver

mybatis-config.xml (mybatis配置文件)

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties"/>

<environments default="mysql_developer">

<environment id="mysql_developer">
<!-- mybatis使用jdbc事务管理方式 -->
           <transactionManager type="jdbc"/>
<!-- mybatis使用连接池方式来获取连接 -->
           <dataSource type="pooled">
<!-- 配置与数据库交互的4个必要属性 -->
               <property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.passwd}"/>
</dataSource>
</environment>

</environments>

<mappers>

<!-- 注册discipleMapper.xml文件-->

       <mapper resource="mapper/discipleMapper.xml"/>

</mappers>

</configuration>

discipleMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="mapper.discipleMapper">

<!-- 根据id查询得到一个disciple对象-->

   <select id="getDisciple" parameterType="int" resultType="cn.mogeek.domain.Disciple">
select * from jnshu_copy1 where id = #{id}
</select>

</mapper>


最后写了一个测试类:

MybatisTest

package cn.mogeek.mybatis;

import org.junit.Assert;
import org.junit.Test;
import cn.mogeek.mybatis.Mybatis;

import java.io.IOException;

public class MybatisTest{

@Test
   public void testMybatis() throws IOException {
Mybatis mybatis = new Mybatis();
mybatis.querry();
Assert.assertNotNull(mybatis);
}
}

测试成功跑通:


遇到的问题及其解决(主要是配置文件):

1.

2.

3.




今天还是被一些配置的问题给折腾了好久,反思了一下:

1.资料的获取来源不同,有的是视频,有的是文档,实际上 mybatis 的配置相当灵活,每个人的配置习惯都不一样,看着不同的资料去学习不太好。

2.以后遇到问题先搜报错,基本上解决了 60% 的问题,再去看官方文档,实在没有头绪不硬磕,问师兄。


PS:本来想加一个 insert 函数,但是我之前有个字段名字是 from,和关键字冲突了,待我把数据库改一下再弄好。


返回列表 返回列表
评论

    分享到