若依项目: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的配置