ruoyi-cloud集成mybatis-plus
ruoyi-cloud集成mybatis-plus
·
标题 :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}>
{
.....
}
结果查询:
更多推荐
已为社区贡献1条内容
所有评论(0)