文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。
前提
研究源码、对我们的技术提高还是很有帮助的。简单的源码建议从mybatis入手。涉及到的设计模式不是很多。需要下载mybatis的源码和父工程依赖。注意下载的mybatis中的父工程依赖版本要对应。这里下载较稳定的版本。mybatis-3.5.3
。对应的父版本是31。
mybatis-3.5.3
下载地址:github地址mybatis-parent
下载地址:github下载地址
如果访问github比较慢、评论区置顶我给出了下载好的项目源码地址链接。
搭建环境
1、首先创建一个Maven项目
具体创建过程略
2、导入源码
打开项目结构、或者按快捷键:Ctrl + Alt + Shift + S
选择Modules --》 点击 + 号 --》选择 import Module --》 选择下载的源码
将下载的源码导入
选择后,弹出一个对话框、选择 Maven 后点击 finish
将下载的两个源码都导入
将两个源码导入后的项目结构
3、在创建的Maven项目中,添加代码
自己创建一个数据库、编写几个查询语句、没啥好说的。这里简略
4、Debug运行研究源码
然后就可以通过Debug方式查看代码执行情况了
测试类
package com.zyz;
import com.zyz.mapper.userMapper;
import com.zyz.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.List;
/**
* @author zyz
* @version 1.0
* @data 2023/7/28 12:48
* @Description:
*/
public class AppTest {
@Test
public void test() throws IOException {
InputStream input = Resources.getResourceAsStream("SqlSessionConfig.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);
SqlSession sqlSession = sessionFactory.openSession();
userMapper dao = sqlSession.getMapper(userMapper.class);
System.out.println(dao);
List<User> userList = dao.selectAllUser();
for (User level : userList) {
System.out.println(level);
}
}
@Test
public void testMyBatisBuild() throws IOException {
Reader reader = Resources.getResourceAsReader("SqlSessionConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = factory.openSession();
userMapper mapper = sqlSession.getMapper(userMapper.class);
User one = mapper.getOne(1);
System.out.println(one);
sqlSession.close();
}
}
5、项目启动效果
可能遇到的问题
出现的问题、一般都是由于依赖导致。下载对应的依赖就可以了。
在自己创建的maven工程下的pom中添加如下依赖
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.24.1-GA</version>
</dependency>
是不是xml文件没有编译、如果是,就在自己的pom文件中添加下方代码。
添加
<build>
<!-- 加载配置文件 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
后语
如果你嫌弃麻烦、不想自己搭建这个环境。我这里将搭建好的环境已经打包好,地址链接在评论区置顶。你直接拿来运行、研究代码就可以了。个人建议还是搭建一下环境比较好。也能学到蛮多。
项目链接我放到评论区置顶了