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

推荐订阅源

小众软件
小众软件
博客园_首页
博客园 - 聂微东
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
The Cloudflare Blog
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
D
Docker
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
B
Blog RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
Jina AI
Jina AI
博客园 - Franky
D
DataBreaches.Net

博客园 - 试试手气

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