Mybatis源码学习01——源码环境搭建
图难于其易,为大于其细。天下难事,必作于易;天下大事,必作于细。从Spring源码退一步学习mybatis源码未尝不是一个正确的决定。
准备工作
IDEA
Maven
mysql-connector-java-8.0.13.jar 百度云盘 提取码 z31r
Mybatis 源码获取
建议下载压缩包 https://github.com/mybatis/mybatis-3/releases
git地址:https://github.com/mybatis/mybatis-3.git
源码阅读环境搭建
1. 导入mybatis项目
2. 等待maven下载依赖
运行Mybatis项目
**1. 新建 resources 资源包 (文件夹) **
- 在main路径下新建resources包
- 设置为资源路径
2. 新建 mapper包,和domain包
3. domain包下新建实体类
重写toString()方法
4. mapper包下新建UserMapper.java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9YEv7fzH-1613902525861)(C:\Users\Administrator\Desktop\GIF 2021-2-21 15-50-27.gif)]
package org.apache.ibatis.mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.domain.User;
import java.util.List;
public interface UserMapper {
@Select("select * from user")
public List<User> selectAll();
}
5. 创建数据库及实体类对应的表
-
连接数据库
-
创建 mybatis数据库及 user表
CREATE DATABASE `mybatis`; USE `mybatis` CREATE TABLE `user`( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY(`id`) )
补充一条用户记录
USE `mybatis`
INSERT INTO `user` VALUES(1,'咸鱼');
6. resources下导入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>
<environments default="development">
<environment id="development">
<!--使用jdbc事务管理 -->
<transactionManager type="JDBC"/>
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://****************"/>
<property name="username" value="*******"/>
<property name="password" value="*******"/>
</dataSource>
</environment>
</environments>
<!-- 引入映射配置文件 -->
<mappers>
<package name="org.apache.ibatis.mapper"/>
</mappers>
</configuration>
7. 添加mysql驱动
-
项目目录下新建 lib 文件夹*
-
将 mysql-connector-java-xxx.jar 放进lib文件夹下
-
添加到库
8. 创建Main.java 编写测试程序
package org.apache.ibatis;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.mapper.UserMapper;
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 Main {
// SqlSession的工厂
static SqlSessionFactory sqlSessionFactory = null;
static {
try {
// 加载mybatis配置文件,并创建SqlSessionFactory实例
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
//这个build方法可以接受几种不同的参数,如Reader/InputSteam等
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.getMessage();
}
}
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
public static void closeSqlSession(SqlSession sqlSession){
if (sqlSession != null) {
sqlSession.close();
}
}
public static void main(String[] args) throws Throwable {
SqlSession session = getSqlSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
System.out.println(userMapper.selectAll());
}
}
9. 执行main方法
到此,已经完成mybatis阅读环境的搭建与测试。接下来就可以通过调试学习源码了。
有问题欢迎指正