若依Ruoyi分離版替換 MyBatis-Plus

试试手气發表於2024-11-23

若依專案: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-bommybatis-plus-jsqlparser

引入時還發生了插曲,按照官方說明jdk 8+應該引入的是

<!-- jdk 8+ 引入可選模組 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-jsqlparser-4.9</artifactId>
</dependency>

但實際引入不成功,改為上例中的引入可行(引入正常但程式碼未測試是否能正常執行)。
image

commonframework兩個模組也分別引入

<!-- 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檔案的處理,網上有不同的說法,有的是全部註釋、有的刪除、有的改寫,本例中使用的是檔案保留但註釋全部內容的處理方式。
image

至此完成依賴引入和替換,可以正常啟動工程(截止到寫文時啟動成功但未測試執行是否正常)。

maven 倉庫的補充
一開始對mybatis-plus-jsqlparser是找不到的,修改了當前工程的maven配置,新增了倉庫的映象地址,又經過了反覆的引入查詢最終成功找到,以下是本例中對maven的配置
image
image

參考
MyBatis-Plus安裝
【若依管理系統】如何將 Mybatis 升級為 Mybatis-Plus
若依前後端分離版本原生mybatis替換mybatis-plus詳細教程
springboot整合mybatis-plus及mybatis-plus分頁外掛的使用
若依 MyBatis改為MyBatis-Plus

相關文章