目的
这篇文章只是为了记录如何快速的利用IDEA搭建mybatis源码阅读环境。
我们优先使用官方的文档作为阅读源码的最大引路人。因为mybatis官方文档已经是很完整的。我们看懂了官方文档就是了解了mybatis的核心思想和使用方式。
资料
[mybatis官方文档](mybatis – MyBatis 3 | 入门)
步骤 主要有两个
1、下载源码和依赖进行编译
2、跟着官方文档进行入门级代码编写。
-
下载源码和依赖进行编译
-
有两个方案,第一个是github直接download。第二个就是使用gitee加速了。我这里是直接download的。也有人喜欢git 进行clone。但是我想着这个我是会在里面增加很多理解的注释和测试,所以就不用git 进行clone。
这里给出地址 [mybatis github](mybatis/mybatis-3: MyBatis SQL mapper framework for Java (github.com)) 我下载的是里面的一个tag 3.5.7的版本。
-
这里面有一个点是我们还要下载依赖,我们可以打开mybatis源码中的pom文件查看他依赖的parent。
例如我的是32这个版本,我就需要去下载对应的一个依赖,我们直接去github下载。[mybatis-parent](mybatis/parent: The MyBatis parent POM which has to be inherited by all MyBatis modules (github.com))同样是去tag中找合适自己的版本。
-
然后利用idea新建一个maven项目。我的是mybatisL。
-
将解压后的mybatis源码和parent源码增加到中。
-
这里开始修改mybatisL的pom。
-
packaging打包方式改为pom。
-
增加modules将mybatis和parent写进去。
<modules> <module>parent-mybatis-parent-32</module> <module>mybatis-3-mybatis-3.5.7</module> </modules> -
mybatis依赖增加parent的真实路径。
<relativePath >../parent-mybatis-parent-32/pom.xml</relativePath> -
然后查找mybatis和parent中的pom关于pdf的依赖和插件,注释或者直接删除。
-
最后在可以利用idea进行编译。他可以帮你跳过test。然后先编译parent再编译mybatis即可。
-
success就是环境搭建好了。
-
-
后面我们就根据文档进行测试代码的编写。
-
我们先准备数据库。
- 一张user表,一张role表。
CREATE TABLE `t_user` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', `uname` varchar(64) NOT NULL DEFAULT '' COMMENT '用户名', `password` varchar(128) NOT NULL DEFAULT '' COMMENT 'pwd', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ciCREATE TABLE `role` ( `id` int DEFAULT NULL, `role_name` varchar(255) DEFAULT NULL, `note` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci- 然后配置mybatis-config.xml。我建议直接使用mybatis官方的最简配置进行修改。只需要修改括号里面的参数和修改mapper就行了。
<?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"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>- 然后定义一个mapper接口和xml。进行操作,这个部分就不贴代码了。
- 直接写个test执行一下。
@Test public void test() throws IOException { InputStream in = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession session = factory.openSession(); // 传统方法,这里是命名空间,注意看官方文档。 List<Object> list = session.selectList("com.shengxi.mybatis.mapper.UserMapper.selectAll"); System.out.println(JSON.toJSONString(list)); // 简化方法 UserMapper mapper = session.getMapper(UserMapper.class); List<UserPO> userPOList = mapper.selectAll(); System.out.println(JSON.toJSONString(userPOList)); }正常执行即可。
-
-
-