教你一步到位部署運(yùn)行MyBatis3源碼(保姆級(jí))
源碼部署
下載
mybatis3中文網(wǎng)址:mybatis.org/mybatis-3/z…
mybatis3下載地址:github.com/mybatis/myb…
mybatis父工程下載地址:github.com/mybatis/par…
點(diǎn)擊鏈接下載zip包,注意對(duì)應(yīng)版本(本文為穩(wěn)妥起見(jiàn)下載了前人趟過(guò)坑的mybatis3的3.5.3版本)。

該項(xiàng)目pom文件中有引入mybatis-parent工程,需按照對(duì)應(yīng)版本下載,切記!

下載后解壓。

編譯安裝
使用CMD編譯安裝項(xiàng)目前需要先配置好maven系統(tǒng)變量和本地倉(cāng)庫(kù)路徑,不然會(huì)下載依賴到到C盤隱藏目錄.m2中。
環(huán)境變量截圖:

變量path:

maven 下config文件中setting.xml中配置:

切換到你下載的mybatis-parent目錄打開(kāi)cmd:
執(zhí)行命令:mvn clean install -Dmaven.test.skip=true
等待BUILD SUCCESS。

或者IDEA open項(xiàng)目自己clean install也不會(huì)報(bào)錯(cuò)

接下來(lái)切換到你下載的mybatis源碼目錄:
為防止編譯失敗需要先注釋掉pom.xml文件的maven-pdf-plugin插件:
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pdf-plugin</artifactId>
</plugin>-->
執(zhí)行命令:mvn clean install -Dmaven.test.skip=true
等待一下,中間不要管,等build成功。

idea導(dǎo)入
- IDEA 新建Maven項(xiàng)目后先不進(jìn)行操作(本人項(xiàng)目名為
source-mybatis); ctrl+shift+ alt+ s打開(kāi)項(xiàng)目配置,將兩個(gè)項(xiàng)目添加進(jìn)module中,至此源碼導(dǎo)入結(jié)束。

demo測(cè)試
先貼一個(gè)source-mybatis項(xiàng)目截圖:

先貼一個(gè)pom文件的依賴,注意mybatis.version的版本一定要是自己源碼的版本;
我本地是mysql8,實(shí)際需按照自己情況導(dǎo)入依賴和配置。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.13.2</junit.version>
<mybatis.version>3.5.3</mybatis.version>
<mysql.version>8.0.11</mysql.version>
<druid.version>1.1.9</druid.version>
</properties>
<dependencies>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.26.0-GA</version>
</dependency>
</dependencies>
<build>
<!-- 加載配置文件 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
下面貼一下SqlSessionConfig.xml配置文件的內(nèi)容:
<?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>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
<package name="com.yang.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<!-- dirver根據(jù)自身mysql版本來(lái) -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root123456"/>
<!-- mysql8要加:serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true-->
<property name="url" value="jdbc:mysql://localhost:3306/news?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.yang.mapper"/>
</mappers>
</configuration>
實(shí)體類和mapper正常寫,和平常項(xiàng)目沒(méi)有任何區(qū)別,不貼代碼了;
測(cè)試類代碼如下:
@Test
public void test() throws IOException {
InputStream input = Resources.getResourceAsStream("SqlSessionConfig.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);
SqlSession sqlSession = sessionFactory.openSession();
LevelDao dao = sqlSession.getMapper(LevelDao.class);
List<Level> all = dao.findAll();
for (Level level : all) {
System.out.println(level);
}
}
接下來(lái)我們debug執(zhí)行測(cè)試方法,在第四行處打斷點(diǎn)是可以在IDEA面板中跳轉(zhuǎn)到我們的mybatis源碼的類文件中的,接下來(lái)我們就可以自己寫注釋,來(lái)學(xué)習(xí)mybatis3的底層源碼。

至此結(jié)束,親測(cè)這套流程是沒(méi)什么問(wèn)題的,趕快來(lái)學(xué)習(xí)吧。
總結(jié)
到此這篇關(guān)于部署運(yùn)行MyBatis3源碼的文章就介紹到這了,更多相關(guān)部署運(yùn)行MyBatis3源碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
快速解決idea @Autowired報(bào)紅線問(wèn)題
這篇文章主要介紹了快速解決idea @Autowired報(bào)紅線問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Spring boot通過(guò)切面,實(shí)現(xiàn)超靈活的注解式數(shù)據(jù)校驗(yàn)過(guò)程
這篇文章主要介紹了Spring boot通過(guò)切面,實(shí)現(xiàn)超靈活的注解式數(shù)據(jù)校驗(yàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Windows下Java環(huán)境配置的超詳細(xì)教程
這篇文章主要給大家介紹了關(guān)于Windows下Java環(huán)境配置的超詳細(xì)教程,文中通過(guò)圖文將配置的過(guò)程介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-01-01
Spring?Boot?Admin集成與自定義監(jiān)控告警示例詳解
SpringBootAdmin是一個(gè)管理和監(jiān)控SpringBoot應(yīng)用程序的工具,可通過(guò)集成和配置實(shí)現(xiàn)應(yīng)用監(jiān)控與告警功能,本文給大家介紹Spring?Boot?Admin集成與自定義監(jiān)控告警示例詳解,感興趣的朋友跟隨小編一起看看吧2024-09-09
Java中關(guān)于MouseWheelListener的鼠標(biāo)滾輪事件詳解
這篇文章主要介紹了Java中關(guān)于MouseWheelListener的鼠標(biāo)滾輪事件詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
基于java swing實(shí)現(xiàn)答題系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于java swing實(shí)現(xiàn)答題系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

