mybatis在众多的数据持久化框架中应该说是目前使用最多的,其优秀的设计和底层封装,值得很多开发人员进行学习,下面让我们先来构建一下mybatis的源码阅读环境吧
1、github下载mybatis源码
https://github.com/mybatis/parent/tree/mybatis-parent-30
2、导入idea
将下载好的源码,通过idea导入,在开始编译之前,需要修改pom文件中的几处配置,避免构建过程中报错
mybatis源码分析。找到ognl坐标依赖
将true标签的true修改为false或者直接注释调
<dependency><groupId>ognl</groupId><artifactId>ognl</artifactId><version>3.2.10</version><!-- <scope>compile</scope> --><!-- <optional>true</optional> --></dependency>
找到pdf坐标依赖
直接注释调即可
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pdf-plugin</artifactId>
</plugin>
执行打包命令
mvn clean install -Dmaven.test.skip=true
首次编译安装,需要下载大量的依赖,比较花费时间,经过漫长的等待,看到如下的build success之后,就可以开始编写代码了
maven环境搭建。
demo导入本地mybatis
下面我们来快速搭建一个mybatis的工程,并引用上面使用源码构建好的mybatis依赖包
项目结构非常简单,如图中所示
pom依赖
<dependencies><!-- mybatis依赖 --><!--<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency>--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.0-SNAPSHOT</version></dependency><!-- mysql依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version></dependency><!-- 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
mybatis环境搭建。db.properties
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://IP:3306/test?characterEncoding=utf-8
db.username=root
db.password=123456
SqlMapConfig.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 resource="demo1/db.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${db.driver}" /><property name="url" value="${db.url}" /><property name="username" value="${db.username}" /><property name="password" value="${db.password}" /></dataSource></environment></environments><mappers><mapper resource="demo1/UserMapper.xml" /></mappers></configuration>
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test"><select id="findUserById" parameterType="int" resultType="com.congge.demo1.entity.User">SELECT * FROM user WHERE id = #{id}</select></mapper>
关于上面这几个配置文件的作用,想必使用过ssm框架或对mybatis框架了解的都知道了,然后再编写一个简单的接口和实现类
UserDao
User findUserById(int id);
UserDaoImpl
public class UserDaoImpl implements UserDao {private SqlSessionFactory sqlSessionFactory;// 注入sqlSessionFactorypublic UserDaoImpl(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}@Overridepublic User findUserById(int id) {// sqlsessionFactory工厂类去创建sqlsession会话SqlSession sqlSession = sqlSessionFactory.openSession();// sqlsession接口,开发人员使用它对数据库进行增删改查操作User user = sqlSession.selectOne("test.findUserById", id);return user;}}
idea搭建maven环境?测试类
public class DemoTest1 {private SqlSessionFactory sqlSessionFactory;@Beforepublic void init() throws Exception{// 加载全局配置文件(同时把映射文件也加载了)String resource = "demo1/SqlMapConfig.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// sqlsessionFactory需要通过sqlsessionFactoryBuilder读取全局配置文件信息之后sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() {UserDao dao = new UserDaoImpl(sqlSessionFactory);User user = dao.findUserById(1);System.out.println(user);}
}
运行testFindUserById这个单元测试方法,可看到,从数据库查询到一条结果
到这里,我们完成了mybatis的源码安装与构建,并通过工程的形式导入源码包并完成了测试,下一步让我们通过源码的方式来逐步深入学习mybatis的底层架构吧
本篇到此结束,最后感谢观看!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态