idea调试mysql源码_使用IDEA导入MyBatis源码进行调试

一. 下载源码

GitHub地址:https://github.com/mybatis/mybatis-3

e1da630dcfdcd238a6437e28d86e5d7f.png

复制上面的地址执行下列命令:

git clone https://github.com/mybatis/mybatis-3.git mybatis-source

注:GitHub可能会很慢,但是可以借助国内的Gitee进行“下载加速” 参考链接

打开mybatis-source下pom.xml文件,会发现Mybatis源码还依赖于一个父工程:

be29ea6050bf29868d1a5f643bfca8de.png

去Github上下载对应的父工程,下载的mybatis-parent版本要和mybatis源码中pom文件指定的父工程版本一致。

ebfdfbdae343ba7765dbddbf829217e7.png

二. 搭建MyBatis测试环境

注意:这里我们只分析MyBatis源码,所以并没有与Spring集成。

第一步:新建Maven,加入MyBatis相应依赖

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0modelVersion>

cn.tjdgroupId>

mybatis-source-studyartifactId>

1.0-SNAPSHOTversion>

4.12junit.version>

3.2.8mybatis.version>

5.1.32mysql.version>

1.0.9druid.version>

properties>

log4jgroupId>

log4jartifactId>

1.2.17version>

dependency>

org.mybatisgroupId>

mybatisartifactId>

${mybatis.version}version>

dependency>

mysqlgroupId>

mysql-connector-javaartifactId>

${mysql.version}version>

dependency>

com.alibabagroupId>

druidartifactId>

${druid.version}version>

dependency>

junitgroupId>

junitartifactId>

${junit.version}version>

testscope>

dependency>

dependencies>

src/main/javadirectory>

**/*.xmlinclude>

includes>

resource>

resources>

build>

project>

注意,此时这里引入的MyBatis依赖都是中央仓库中的,并不是我们下载的源码。

第二步:新建Mapper接口和对应的映射文件

868b33fbb35fb9e06571702dcb7e8104.png

第三步:新建MyBatis配置文件

在resource目录下创建SqlSessionConfig.xml文件:

settings>

typeAliases>

transactionManager>

dataSource>

environment>

environments>

mappers>

configuration>

第四步:编写测试类测试

public class MyBatisTest {

@Test

public void testMyBatisBuild() throws IOException {

InputStream input = Resources.getResourceAsStream("SqlSessionConfig.xml");

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);

SqlSession sqlSession = sessionFactory.openSession();

TestMapper mapper = sqlSession.getMapper(TestMapper.class);

Map student = mapper.getStudentById("00000b373502481baa1a5f5229507cf8");

}

}

测试成功即可进行下一步。

48b10db07f1b4aa8e02cedac65fdd194.png

注:之所以要在源码整合之前搭建好测试环境,是为了保证测试环境的可靠,因为后序的源码整合可能会发生一些问题,这样可以排除是因为测试环境错误所导致的。

三. 源码整合

第一步:将源码项目(两个)导入当前测试项目所在的界面中

导入后的效果如图:

02254d02e94426786317aa3d5060ba4c.png

至于IDEA如何在一个界面中导入多个项目请参考:一个IDEA界面如何同时打开多个项目

第二步:将源码安装至本地仓库中(参考至:mybatis 源码导入IDEA)

切换到你下载的mybatis-parent目录:

mvn clean install -Dmaven.test.skip=true

切换到你下载的mybatis源码目录:

mvn clean install -Dmaven.test.skip=true

如果出现如下错误:

83e1a8df8ba4a71ac5867e982aa17b12.png

打开pom.xml 文件注释掉 maven-pdf-plugin 插件:

第三步:修改测试项目中pom文件依赖的MyBatis版本

我们需要将测试项目中pom依赖的MyBatis的版本修改为刚刚安装至本地仓库的版本:

e60f95955731832d1663d7783e2d5b5d.png

第四步:运行测试类,看是否能够执行成功

第一次执行肯定会遇到很多问题,例如博主就遇到了缺少包的问题:

8ecfc242469697e93f1f6339a765a16b.png

我们在pom文件中加入:

org.javassistgroupId>

javassistartifactId>

3.26.0-GAversion>

dependency>

具体加坐标需要去中央仓库搜索 。

再次执行,会发现依然缺少依赖,按照相同步骤解决即可。

把所有的问题解决后,我们通过debug可以发现能够进入到mybatis源码项目中去,大功告成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值