【Mybatis源码解析第二章】搭建Mybatis源码阅读环境

骑猪看日落 2023-07-06 06:29 98阅读 0赞

缘起

看完了第一章的内容,想必你已经对jdbc的使用复习了一遍。那么如果我们要使用Mybatis实现上一章的查询数据的功能,应该怎么写呢?
你可以在项目中引入Mybatis的jar包,然后书写相关查询代码。但是我们是主要研究源码,如果采用jar包的方式调试的时候会有诸多不便。所以我们需要先搭建Mybatis的源码阅读环境。

源码下载并导入idea

首先去github下载mybatis的源码,本处所用源码为3.5.4
gitHub链接
下载完成之后导入到idea,导入完成之后如图所示
在这里插入图片描述

书写使用代码

新建一个test包用来放调试源码的代码
在这里插入图片描述
在test包下面新建Test实体类

  1. public class Test {
  2. private String id;
  3. private String name;
  4. //get set方法略
  5. }

在resource下面新建一个mappers 文件夹,在mappers 中新建Test实体对应的映射文件TestMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <!-- mapper:根标签,namespace:命名空间,随便写,一般保证命名空间唯一 -->
  4. <mapper namespace="MyMapper">
  5. <!-- statement,内容:sql语句。id:唯一标识,随便写,在同一个命名空间下保持唯一 resultType:sql语句查询结果集的封装类型,tb_user即为数据库中的表 -->
  6. <select id="selectTest" resultType="org.apache.ibatis.test.Test">
  7. select * from test where id = #{id}
  8. </select>
  9. </mapper>

在resource根目录新建mybatis配置文件mybatis-config.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <!-- 根标签 -->
  4. <configuration>
  5. <properties>
  6. <property name="driver" value="com.mysql.jdbc.Driver"/>
  7. <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_test?useUnicode=true&characterEncoding=UTF8&useSSL=false&autoReconnect=true"/>
  8. <property name="username" value="root"/>
  9. <property name="password" value="123456"/>
  10. </properties>
  11. <!-- 环境,可以配置多个,default:指定采用哪个环境 -->
  12. <environments default="test">
  13. <environment id="test">
  14. <!-- 事务管理器,JDBC类型的事务管理器 -->
  15. <transactionManager type="JDBC" />
  16. <!-- 数据源,池类型的数据源 -->
  17. <dataSource type="POOLED">
  18. <property name="driver" value="${driver}" /> <!-- 配置了properties,所以可以直接引用 -->
  19. <property name="url" value="${url}" />
  20. <property name="username" value="${username}" />
  21. <property name="password" value="${password}" />
  22. </dataSource>
  23. </environment>
  24. </environments>
  25. <mappers>
  26. <mapper resource="mappers/TestMapper.xml" />
  27. </mappers>
  28. </configuration>

新建调试mybatis的类:TestMain,写入一个main方法

  1. public class TestMain {
  2. public static void main(String[] args) throws IOException {
  3. // 指定全局配置文件
  4. String resource = "mybatis-config.xml";
  5. // 读取配置文件
  6. InputStream inputStream = Resources.getResourceAsStream(resource);
  7. // 构建sqlSessionFactory
  8. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  9. // 获取sqlSession
  10. SqlSession sqlSession = sqlSessionFactory.openSession();
  11. // 操作CRUD,第一个参数:指定statement,规则:命名空间+“.”+statementId
  12. // 第二个参数:指定传入sql的参数:这里是用户id
  13. Test test = sqlSession.selectOne("TestMapper.selectTest", 1);
  14. System.out.println(test.getName());
  15. }
  16. }

你可能会发现好像使用方法跟项目中有所不同,这是因为在项目中Mybatis往往是结合Spring一起来使用的,而本文是单独的Mybatis的使用方式。
在前面这些文件全部建好后的目录结构如下
在这里插入图片描述
我们运行上诉main方法,运行结果如下
在这里插入图片描述

总结

本章讲述了如何下载源码以及书写一个入口程序,那么下一章我们来说说Mybatis的内部逻辑是怎样的。

发表评论

表情:
评论列表 (有 0 条评论,98人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mybatis环境

    前言 mybatis在众多的数据持久化框架中应该说是目前使用最多的,其优秀的设计和底层封装,值得很多开发人员进行学习,下面让我们先来构建一下mybatis的源码阅读环境吧