ruoyi微服务后端集成mybatis-plus 3.5.6

By | 2024 年 5 月 30 日

父类pom和公共pom依赖修改

ruoyi-parent

pom.xml中添加

<project>
    <properties>
        <mybatis-starter.version>2.3.1</mybatis-starter.version>
        <mybatis-plus.version>3.5.6</mybatis-plus.version>
    </properties>
</project>

将properties下

<ruoyi.version>3.6.4</ruoyi.version>改为
<ruoyi.version>${project.version}</ruoyi.version>

将<version>3.6.4</version>升级为<version>3.6.4.1</version>

执行maven deploy

ruoyi-common

在ruoyi-common-core模块pom.xml中

pagehelper-spring-boot-starter包中排除mybatis-spring-boot-starter

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis.spring.boot</groupId>
                    <artifactId>mybatis-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

添加以下包的引用

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
    <version>${mybatis-starter.version}</version>
</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-extension</artifactId>
    <version>${mybatis-plus.version}</version>
    <scope>compile</scope>
</dependency>

com.ruoyi.common.core.config下添加mybatis-plus配置

package com.ruoyi.common.core.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
* Mybatis Plus 配置
*
* @author ruoyi
*/
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
public class MybatisPlusConfig {

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor());
// 乐观锁插件
interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
// 阻断插件
interceptor.addInnerInterceptor(blockAttackInnerInterceptor());
return interceptor;
}

/**
* 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html
*/
public PaginationInnerInterceptor paginationInnerInterceptor() {
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 设置数据库类型为mysql
paginationInnerInterceptor.setDbType(DbType.MYSQL);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInnerInterceptor.setMaxLimit(-1L);
return paginationInnerInterceptor;
}

/**
* 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html
*/
public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
return new OptimisticLockerInnerInterceptor();
}

/**
* 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html
*/
public BlockAttackInnerInterceptor blockAttackInnerInterceptor() {
return new BlockAttackInnerInterceptor();
}
}

将全局pom.xml的版本<version>3.6.4</version>升级为<version>3.6.4.1</version>

执行maven deploy

ruoyi-api

将全局pom.xml的版本<version>3.6.4</version>升级为<version>3.6.4.1</version>

执行maven deploy

ps:

因为ruoyi-common中ruoyi-common-security模块依赖了ruoyi-api-system,所以也需要升级ruoyi-api和ruoyi-api-system

但是ruoyi-api-system又依赖了ruoyi-common-core

所以执行顺序是:

先执行ruoyi-common,报错显示ruoyi-common-security模块deploy失败

再执行ruoyi-api模块deploy

ruoyi-api成功后再deploy ruoyi-common即可全部成功

微服务中配置使用

nacos

修改ruoyi-system微服务配置文件

将mybatis配置注释掉

## mybatis配置
#mybatis:
#    # 搜索指定包别名
#    typeAliasesPackage: com.ruoyi.feature
#    # 配置mapper的扫描,找到所有的mapper.xml映射文件
#    mapperLocations: classpath:mapper/**/*.xml

添加mybatis-plus配置

mybatis-plus:
  global-config:
    db-config:
      # 逻辑已删除值
      logic-delete-value: 1
      # 逻辑未删除值
      logic-not-delete-value: 0
  configuration:
    #开启sql日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 
  # Mapper.xml 文件位置 Maven 多模块项目的扫描路径需以 classpath*: 开头
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  #  #MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名 实体扫描,多个package用逗号或者分号分隔
  type-aliases-package: com.ruoyi.feature
#  config-location: classpath:mybatis/mybatis-config.xml
  #  #通过父类(或实现接口)的方式来限定扫描实体
  #  typeAliasesSuperType: com.vanhr.user.dao.entity.baseEntity
  #  #枚举类 扫描路径 如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
  #  typeEnumsPackage: com.vanhr.user.dao.enums
  # 启动时是否检查 MyBatis XML 文件的存在,默认不检查 仅限spring boot 使用
  checkConfigLocation : true
  #  #通过该属性可指定 MyBatis 的执行器,MyBatis 的执行器总共有三种:
  #  # ExecutorType.SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)
  #  # ExecutorType.REUSE:该执行器类型会复用预处理语句(PreparedStatement)

ruoyi-system

pom.xml中父类升级

<parent>
    <groupId>com.ruoyi</groupId>
    <artifactId>ruoyi</artifactId>
    <version>3.6.4</version>
</parent>
<parent>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi</artifactId>
<version>3.6.4.1</version>
</parent>

更新maven后,可以看到ruoyi-system已引入了mybatis-plus相关依赖

启动服务,成功,操作完成

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注