若依專案:Ruoyi-vue 3.8.8
MyBatis-Plus:3.5.9
目標:用 MyBatis-Plus 替換專案中 MyBatis
建立分支
新建分支switch-mybatisplus
以防萬一
改造依賴
在專案的根pom.xml
中引入依賴
<properties>
...
<mybatis-plus.version>3.5.9</mybatis-plus.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-bom</artifactId>
<version>${mybatis-plus.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
</dependencyManagement>
需要說明的是,如果是引入主要功能,只引入mybatis-plus-boot-starter
就夠了,本例中因為想要引入Mybatis-Plus的分頁外掛所以根據官方的說明,引入了mybatis-plus-bom
和mybatis-plus-jsqlparser
。
引入時還發生了插曲,按照官方說明jdk 8+應該引入的是
<!-- jdk 8+ 引入可選模組 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser-4.9</artifactId>
</dependency>
但實際引入不成功,改為上例中的引入可行(引入正常但程式碼未測試是否能正常執行)。
在common
和framework
兩個模組也分別引入
<!-- common 新增 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
</dependency>
<!-- framework 新增 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
</dependency>
修改 application.yml
遮蔽原有的Mybatis配置段,增加新的MyBatis-Plus配置段
# MyBatis配置
#mybatis:
# # 搜尋指定包別名
# typeAliasesPackage: com.ruoyi.**.domain
# # 配置mapper的掃描,找到所有的mapper.xml對映檔案
# mapperLocations: classpath*:mapper/**/*Mapper.xml
# # 載入全域性的配置檔案
# configLocation: classpath:mybatis/mybatis-config.xml
# mybatis-plus
mybatis-plus:
mapper-locations: classpath*:mapper/**/*Mapper.xml
type-aliases-package: com.ruoyi.**.domain
global-config:
db-config:
id-type: auto
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
# 開啟sql日誌
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
修改 MyBatis.conf
將原有的MyBatisConfig.java
檔案刪除或全部註釋,新建MyBatisPlusConfig.java
package com.ruoyi.framework.config;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public PaginationInnerInterceptor paginationInterceptor() {
return new PaginationInnerInterceptor();
}
}
對於原有MyBatisConfig.java
檔案的處理,網上有不同的說法,有的是全部註釋、有的刪除、有的改寫,本例中使用的是檔案保留但註釋全部內容的處理方式。
至此完成依賴引入和替換,可以正常啟動工程(截止到寫文時啟動成功但未測試執行是否正常)。
maven 倉庫的補充
一開始對mybatis-plus-jsqlparser
是找不到的,修改了當前工程的maven配置,新增了倉庫的映象地址,又經過了反覆的引入查詢最終成功找到,以下是本例中對maven的配置
參考
MyBatis-Plus安裝
【若依管理系統】如何將 Mybatis 升級為 Mybatis-Plus
若依前後端分離版本原生mybatis替換mybatis-plus詳細教程
springboot整合mybatis-plus及mybatis-plus分頁外掛的使用
若依 MyBatis改為MyBatis-Plus