mybaits-3.5.6源码环境搭建
mybatis源码仓库地址:https://github.com/mybatis/mybatis-3
我下载的是版本3.5.6:https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.6
打开pom文件查看mybatis依赖,发现他依赖 mybatis-parent 的版本32
<parent>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-parent</artifactId>
<version>32</version>
<relativePath />
</parent>
下载依赖版本:https://github.com/mybatis/parent/releases
分别导入两个项目到idea中
首先打开mybatis-parent项目的pom文件 注释一下内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pdf-plugin</artifactId>
<version>${pdf.version}</version>
<executions>
<execution>
<id>pdf</id>
<phase>prepare-package</phase>
<goals>
<goal>pdf</goal>
</goals>
<configuration>
<includeReports>false</includeReports>
</configuration>
</execution>
</executions>
</plugin>
点击maven -> install 等待完成 也可以在Terminal窗口下执行
mvn clean install -Dmaven.test.skip
打开mybatis 的 pom.xml 文件 修改为本地依赖
<parent>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-parent</artifactId>
<version>32</version>
<!--修改为本地依赖-->
<relativePath>../parent-mybatis-parent-32/pom.xml</relativePath>
</parent>
注释掉 mysql-connector-java 依赖的 scope 标签
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
<!--制定了测试环境使用-->
<!--<scope>test</scope>-->
</dependency>
如下内容 全部注释
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${argLine} -Xmx2048m</argLine>
<systemProperties>
<property>
<name>derby.stream.error.file</name>
<value>${project.build.directory}/derby.log</value>
</property>
<property>
<name>derby.system.home</name>
<value>${project.build.directory}</value>
</property>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pdf-plugin</artifactId>
</plugin>
<profile>
<id>travis-ci</id>
<activation>
<property>
<name>env.TRAVIS</name>
</property>
</activation>
<properties>
<excludedGroups />
</properties>
</profile>
<repositories>
<repository>
<id>sonatype-oss-snapshots</id>
<name>Sonatype OSS Snapshots Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
最后点击 install 等待加载完成 会有报错先不管
在项目中创建如下目录
UserTestMapper.xml文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.mapper.UserTestMapper">
<select id="getUserOne" resultType="org.example.UserTest">
select * from t_test where id =#{id}
</select>
</mapper>
UsetTestMapper.java
package org.example.mapper;
import org.apache.ibatis.annotations.Param;
import org.example.UserTest;
public interface UserTestMapper {
UserTest getUserOne(@Param("id") int id);
}
UserTest.java
private int id;
private String name;
// get/set/toString()
MybatisMain.java
package org.example;
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.Reader;
public class MybatisMain {
public static void main(String[] args) throws IOException {
// 加载xml文件获取session
Reader reader = Resources.getResourceAsReader("config/mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserTest userTest = sqlSession.selectOne("org.example.mapper.UserTestMapper.getUserOne", 1);
System.out.println(userTest.toString());
}
}
jdbc.properties
#这两个都可以 不过最好用下着
#driver=com.mysql.jdbc.Driver
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC
username=root
password=123456
mybatis-config.xml
<?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>
<properties resource="config/jdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="autoCommit" value="false"/>
</transactionManager>
<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>
<!--<package name=""/>-->
<!--<mapper class=""/>-->
<!--<mapper url=""></mapper>-->
<!--在resource文件下-->
<mapper resource="mapper/UserTestMapper.xml"/>
</mappers>
</configuration>
debug运行
结果如下: