前段时间笔者在专心研究Netty源码,Netty源码研究已经告一段落了。接下来就是开启我们的Mybaits源码的征程。首先我们要开始编译Mybatis源码。
-
下载源码
我们先去的GitHub上面找到对应的Mybatis的源码,具体的地址:Mybatis源码,具体如下图:
然后通过下面的命令进行clone下来,具体的命令如下:
git clone git@github.com:mybatis/mybatis-3.git
下载好对应的源码后直接解压即可。
-
导入idea
在idea中找到对应的mybatis源码中的pom.xml并打开,具体如下图:
然后选择打开成项目,等待idea构建成功成功即可。
-
编写测试代码
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"> <!--由于本人使用是mysql8.0,所以这儿是使用这个驱动--> <property name="driver" value="com.mysql.cj.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/bookstore?characterEncoding=utf-8" /> <property name="username" value="root" /> <!--自己的数据库密码--> <property name="password" value="****" /> </dataSource> </environment> </environments> <!-- 加载mapper.xml --> <mappers> <mapper resource="mapper/DemoMapper.xml"></mapper> </mappers> </configuration>
mapper文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ys.test.DemoMapper"> <select id="selectMyAll" parameterType="String" resultType="Map"> select * from mybooks </select> </mapper>
mapper文件对应的接口
package com.ys.test; import java.util.List; import java.util.Map; public interface DemoMapper { List<Map<String,Object>> selectMyAll(); }
测试的主类
package com.ys.test; 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 java.io.IOException; import java.io.InputStream;public class TestMyBatis { public static void main(String[] args) throws IOException { String resource = "mybatis.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); DemoMapper mapper = sqlSession.getMapper(DemoMapper.class); System.out.println(mapper.selectMyAll()); sqlSession.close(); } }
运行结果如下:
可以看到我们的结果已经查询到了。至此整个编译测试的过程就已经完成了。后面的博客我会介绍对应的源码。