标题 :ruoyi-cloud集成mybatis-plus

一、在项目根pom文件中添加mybatis-plus依赖

在这里插入图片描述
版本号:
在这里插入图片描述

        <!-- 版本号 -->
        </properties>
            <mybatis-plus.version>3.5.1</mybatis-plus.version>
        </properties>
        <!-- -------------------------------------  -->



        <dependencies>
            <!-- mybatis-plus 增强CRUD -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
        </dependencies>

二、在模块 ruoyi-common-core

1.在pom文件中添加依赖

说明:仅在ruoyi-common-core添加依赖即可,其他子项目会自动引入 ruoyi-common-core
如图:

在这里插入图片描述


        <!-- mybatis-plus 增强CRUD -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
     

2.添加配置类文件 MybatisPlusConfig.java

添加位置如图:

在这里插入图片描述

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();
    }
}

然后找到resources目录下spring.factories文件添加下面配置,将该类注入spring里,不添加会导致分页失效
在这里插入图片描述

com.ruoyi.common.core.config.MybatisPlusConfig

三、在模块zw-serial-num

说明:此模块为我自己创建模块,你们在ruoyi-system模块中步骤也一样

1.如图:在业务模块中对应的mapper文件和service文件按照mybties-plus的用法正常调用即可

在这里插入图片描述

public interface SysSerialNumMapper extends BaseMapper<SysSerialNum>{
....
}

2.更改配置文件:以前配置mybatis注解掉 ,新增mybatis-plus

在这里插入图片描述

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

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

3.如图,代表集成成功在这里插入图片描述

5.测试

在这里插入图片描述

 SysSerialNum sysSerialNum1 = sysSerialNumMapper.selectById(1);
 System.out.println(sysSerialNum1);

可能遇到的报错

1.对应实体类没有查找到这个字段 (Unknown column ‘search_value‘ in ‘field list‘)

在对应实体类字段添加注解 @TableField(exist = false)
如图:在这里插入图片描述

附加: 代码生成

在这里插入图片描述

package ${packageName}.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import ${packageName}.domain.${ClassName};
import org.mybatis.spring.annotation.MapperScan;
#if($table.sub)
import ${packageName}.domain.${subClassName};
#end

/**
 * ${functionName}Mapper接口
 * 
 * @author ${author}
 * @date ${datetime}
 */
@MapperScan
public interface ${ClassName}Mapper extends BaseMapper<${ClassName}>
{
.....
}

结果查询:
在这里插入图片描述

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐