发表于: 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,和关键字冲突了,待我把数据库改一下再弄好。
评论