当前位置: 首页 > news >正文

若依ry替换mybatis为mybatis-plus

若依ry替换mybatis为mybatis-plus

  • 替换mb为mp
  • 使用mp的多数据源

替换mb为mp

  1. 项目根下的pom.xmlcommon模块的pom.xml加上mp的依赖。
<!--<mp.version>3.4.2</mp.version>--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mp.version}</version>
</dependency>
  1. framework模块下的MybatisConfig替换为下面的mp配置类:
@Configuration
public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();//能够添加很多拦截器实现mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//乐观锁拦截器mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return mybatisPlusInterceptor;}
}
  1. 替换admin模块下application.yml里mybatis的配置为下面的mp配置:
mybatis-plus:# 搜索指定包别名type-aliases-package: com.manage.**.domain# 配置mapper的扫描,找到所有的mapper.xml映射文件mapper-locations: classpath*:/mapper/**/*Mapper.xml# 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新executor-type: simpleconfiguration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  1. 可选操作

    • 移除无用的mybatis-config.xml配置文件。
    • 移除pageHelper分页插件依赖(需要修改system等模块的相关方法,改用mp的分页插件)。
    • 不移除pageHelper,可以在BaseController中新增一个兼容mp分页返回值的方法:
protected TableDataInfo getDataTable(IPage<?> page) {TableDataInfo rspData = new TableDataInfo();rspData.setCode(HttpStatus.SUCCESS);rspData.setMsg("查询成功");rspData.setRows(page.getRecords());rspData.setTotal(page.getTotal());return rspData;
}

使用mp的多数据源

  1. 项目根下的pom.xmlcommon模块的pom.xml加上mp的依赖。
<!--<dynamic-datasource.version>3.3.1</dynamic-datasource.version>--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>${dynamic-datasource.version}</version>
</dependency>
  1. admin模块下的application-druid.xml中配置如下内容:
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverdynamic:druid:# 初始连接数initialSize: 5# 最小连接池数量minIdle: 10# 最大连接池数量maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis: 900000# 配置检测连接是否有效validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falseprimary: wf-systemdatasource:wf-system:url: jdbc:mysql://xxx:3306/wf_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: xxxwf-manage:url: jdbc:mysql://xxx:3306/wf_manage?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: xxx
  1. admin模块的启动类上排除druid的自动配置类:@SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class})
  2. 移除framework模块的datasource目录和DruidConfigDruidPropertiesDataSourceType文件,其中DruidConfig替换掉相关内容以配置druid的浏览器页面。
  3. 移除common模块下的DataSourceDataSourceType文件。

如果出现使用mp分页插件查询报错,并且内容含有SELECT COUNT(),则是因为pagehelper依赖 或 generator模块 的jsqlparser库覆盖了mp的,可以修改mp的版本或排除掉其他依赖的jsqlparser库。例如:

<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<exclusions><!--pagehelper的4.5版本会和mp的4.0版本冲突,导致mp的分页插件count查询异常--><exclusion><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></exclusion>
</exclusions>
</dependency>
http://www.dtcms.com/a/434872.html

相关文章:

  • 深圳做微商网站企业网站托管收费标准
  • 怎样做影视网站不侵权站群系统哪个好用
  • 项目中HTTP协议处理部分
  • 二元锦标赛:进化算法中的选择机制及其应用
  • 2026新选题-基于Python的老年病医疗数据分析系统的设计与实现(数据采集+可视化分析)
  • Linux权限核心:chmod命令终极指南(文字与数字法详解)
  • 太原网站建设总部地址青岛seo推广专员
  • 藏语自然语言处理入门 - 4 找相似的句子
  • ubuntu 环境
  • php网站开发 多少钱服务器网站建设软件有哪些
  • Python 图像中矩形四角二维坐标和归一化一维坐标相互转换
  • 做电商网站有什么用万网网站建设教程
  • 网站 设计风格wordpress 加链接地址
  • 中山市企业网站seo营销工具wordpress 搜索 自定义字段
  • 05、Python从入门到癫狂:数据库操作与其他
  • 网页制作报价徐州seo外包平台
  • jQuery简化了事件的绑定和解除,常用的方法有.on()和.off()
  • [Dify] 知识库切片逻辑解析:段落切分 vs 语义块切分,该怎么选?
  • [Windows] 发票识别工具。支持xml、pdf、ofd文件
  • 流量安全——基于Sentinel实现限流,熔断,降级
  • Semaphore GUI 详细介绍
  • 中山网站优化营销做专业课视频课的网站
  • 元表纪基于一个Excel表实现一键发货、打印面单
  • 企业外贸网站建设建设一个直播网站多少钱
  • 网站建设需要基础吗电子商务网站建设与管理是什么
  • 【LeetCode - 每日1题】换水问题1
  • 资深面试之MySQL 问题及解答(一)
  • 自定义脚手架
  • 云空间布置网站seo顾问赚钱吗
  • 网络设备中的硬件转发和软件转发