惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
Jina AI
Jina AI
罗磊的独立博客
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
J
Java Code Geeks
U
Unit 42
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
InfoQ
月光博客
月光博客
博客园_首页
Vercel News
Vercel News
P
Proofpoint News Feed
GbyAI
GbyAI
Y
Y Combinator Blog

博客园 - 试试手气

Web Worker 入门 若依前端菜单管理中路由地址、组件路径、权限字符的使用 Idea clone 项目推送到自有仓库 Spring Boot —— Spring Security Spring Boot —— 集成文档工具 Spring Boot —— Filter 过滤器 Spring Boot —— Cors 跨域 Spring Boot —— 集成 Druid Spring Boot —— 集成 MyBatis-Plus Spring Boot —— 集成 Springdoc Navicat 使用笔记 Datagrip连接SQLServer失败 Asp.net mvc 笔记 Asp.net Core 笔记 mybatis 笔记 SQLServer 笔记 Asp.net Core 全局异常处理 SqlSugar 实践笔记 Asp.net Core 基于Cookie的身份认证
若依Ruoyi分离版替换 MyBatis-Plus
试试手气 · 2024-11-23 · via 博客园 - 试试手气

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