【Mybatis源码解析第二章】搭建Mybatis源码阅读环境
缘起
看完了第一章的内容,想必你已经对jdbc的使用复习了一遍。那么如果我们要使用Mybatis实现上一章的查询数据的功能,应该怎么写呢?
你可以在项目中引入Mybatis的jar包,然后书写相关查询代码。但是我们是主要研究源码,如果采用jar包的方式调试的时候会有诸多不便。所以我们需要先搭建Mybatis的源码阅读环境。
源码下载并导入idea
首先去github下载mybatis的源码,本处所用源码为3.5.4
gitHub链接
下载完成之后导入到idea,导入完成之后如图所示
书写使用代码
新建一个test包用来放调试源码的代码
在test包下面新建Test实体类
public class Test {
private String id;
private String name;
//get set方法略
}
在resource下面新建一个mappers 文件夹,在mappers 中新建Test实体对应的映射文件TestMapper.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 namespace="MyMapper">
<!-- statement,内容:sql语句。id:唯一标识,随便写,在同一个命名空间下保持唯一 resultType:sql语句查询结果集的封装类型,tb_user即为数据库中的表 -->
<select id="selectTest" resultType="org.apache.ibatis.test.Test">
select * from test where id = #{id}
</select>
</mapper>
在resource根目录新建mybatis配置文件mybatis-config.xml
<?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>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&characterEncoding=UTF8&useSSL=false&autoReconnect=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</properties>
<!-- 环境,可以配置多个,default:指定采用哪个环境 -->
<environments default="test">
<environment id="test">
<!-- 事务管理器,JDBC类型的事务管理器 -->
<transactionManager type="JDBC" />
<!-- 数据源,池类型的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" /> <!-- 配置了properties,所以可以直接引用 -->
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/TestMapper.xml" />
</mappers>
</configuration>
新建调试mybatis的类:TestMain,写入一个main方法
public class TestMain {
public static void main(String[] args) throws IOException {
// 指定全局配置文件
String resource = "mybatis-config.xml";
// 读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
// 构建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 操作CRUD,第一个参数:指定statement,规则:命名空间+“.”+statementId
// 第二个参数:指定传入sql的参数:这里是用户id
Test test = sqlSession.selectOne("TestMapper.selectTest", 1);
System.out.println(test.getName());
}
}
你可能会发现好像使用方法跟项目中有所不同,这是因为在项目中Mybatis往往是结合Spring一起来使用的,而本文是单独的Mybatis的使用方式。
在前面这些文件全部建好后的目录结构如下
我们运行上诉main方法,运行结果如下
总结
本章讲述了如何下载源码以及书写一个入口程序,那么下一章我们来说说Mybatis的内部逻辑是怎样的。
还没有评论,来说两句吧...