SpringBoot项目:mybatis升级mybatis-plus

  1. 替换依赖
  2. 修改sqlSessionFactory bean
  3. 分页插件不生效问题记录

1.替换依赖:

将原来的mybatis整合springboot的依赖去掉,替换成mybatis-plus

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version>
</dependency>

2.修改sqlSessionFactory bean

@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) {try {//mybatis升级mybatis-plus,需要替换MybatisSqlSessionFactoryBeanMybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();//SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();//原来mybatis的方式sqlSessionFactoryBean.setDataSource(dataSource);PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();org.springframework.core.io.Resource[] resources = resolver.getResources("classpath:/mapper/*.xml");org.springframework.core.io.Resource config = resolver.getResource("classpath:mybatis-config.xml");sqlSessionFactoryBean.setMapperLocations(resources);sqlSessionFactoryBean.setConfigLocation(config);return sqlSessionFactoryBean.getObject();} catch (Exception e) {logger.error("create sqlSessionFactoryBean error", e);throw new RuntimeException("create sqlSessionFactoryBean error");}
}

3.分页插件不生效问题

3.1配置分页插件:

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbTypereturn interceptor;}
}

3.2 使用分页方法

/*** 分页查询用户列表*/
public List<TUserInfo> selectUserListByPage(TUserInfo userInfo, Page<TUserInfo> page) {return baseMapper.selectPage(page, new QueryWrapper<>(userInfo)).getRecords();
}

但是他的sql打印并没有带limit,解决方案:手动设置插件

@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(DataSource dataSource, MybatisPlusInterceptor mybatisPlusInterceptor) {try {//mybatis升级mybatis-plus,需要替换MybatisSqlSessionFactoryBeanMybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();//SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();//原来mybatis的方式sqlSessionFactoryBean.setDataSource(dataSource);PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();org.springframework.core.io.Resource[] resources = resolver.getResources("classpath:/mapper/*.xml");org.springframework.core.io.Resource config = resolver.getResource("classpath:mybatis-config.xml");sqlSessionFactoryBean.setMapperLocations(resources);sqlSessionFactoryBean.setConfigLocation(config);//分页未生效效,这里手动设置插件Interceptor[] plugins = {mybatisPlusInterceptor};sqlSessionFactoryBean.setPlugins(plugins);return sqlSessionFactoryBean.getObject();} catch (Exception e) {logger.error("create sqlSessionFactoryBean error", e);throw new RuntimeException("create sqlSessionFactoryBean error");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/448680.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea2024年版本

最简单安装2024.2版本idea 内带安装教程 ** 下载链接&#xff1a;https://pan.quark.cn/s/ab24afbaa43f 提取码&#xff1a;KHrq

blender分离含有多个动作的模型,并导出含有材质的fbx模型

问题背景 笔者是模型小白&#xff0c;需要将网络上下载的fbx模型中的动作&#xff0c;分离成单独的动作模型&#xff0c;经过3天摸爬滚打&#xff0c;先后使用了blender&#xff0c;3d max&#xff0c;unity&#xff0c;最终用blender完成&#xff0c;期间参考了众多网络上大佬…

用jsp以及servlet实现获取图片验证码

jsp文件 <% page contentType"text/html;charsetUTF-8" language"java" %> <% request.setCharacterEncoding("UTF-8"); %> <% response.setCharacterEncoding("UTF-8"); %> <html> <head><title&g…

【更新】中国地区粮食播种、粮食产量、灾害等数据(1990-2023年)

数据为中国地区粮食播种、粮食产量、灾害等数据&#xff0c;包括369个指标&#xff0c;各类农作物播种面积、粮食产量、牲畜饲养、受灾面积等。这些指标综合反映了中国农业生产、粮食安全的相关情况 一、数据介绍 数据名称&#xff1a;中国地区粮食播种、粮食产量、灾害等数据…

linux 环境运行 jenkins.war包,有可能会出现字体问题,jdk版本:11 jenkins 版本:2.420

jenkins的目录&#xff1a; /usr/jenkins 启动命令 java -Djava.awt.headlesstrue sudo timedatectl set-timezone Asia/Shanghai-Xmx1024m -jar jenkins.war --httpPort8090 任意目录启动&#xff1a; nohup java -Djava.awt.headlesstrue -Xms1024m -Xmx1024m -jar /usr/j…

Spark高级用法-数据源的读取与写入

目录 数据读取 数据写入 总结 数据读取 读文件 read.json read.csv csv文件有两个部分构成 头部数据&#xff0c;也就是字段数据&#xff0c;行数数据 read.orc 读数据库 read.jdbc(jdbc连接地址,table表名,properties{user用户名,password密码,driver驱动信息}) 缺少连…

西门子变频器SINAMICS V20选型

SINAMICS V20共有五种外形尺寸可供选择&#xff0c;输出功率覆盖0.12kW-30kW&#xff1a; V20订货号 单相230V&#xff1a; 三相380V&#xff1a;

Power BI:链接数据库与动态数据展示案例

一、案例背景 在数据驱动的时代&#xff0c;如何高效、直观地展示和分析数据成为了企业决策和个人洞察的关键。Power BI作为一款强大的商业智能工具&#xff0c;凭借其强大的数据连接能力、丰富的可视化选项以及交互性和动态性&#xff0c;成为了众多企业和个人的首选。本文将…

LabVIEW如何实现高精度定时器

在LabVIEW中实现高精度定时器通常需要考虑以下几个方面&#xff1a;定时器的精度要求、操作系统的调度机制、硬件资源&#xff08;如计时器、触发器&#xff09;等。以下是几种常见的实现方式&#xff1a; ​ 1. 使用 Wait(ms) 或 Wait Until Next ms Multiple VI 这两个函数…

微服务与SpringCloud的概述

微服务概述 微服务的提出&#xff1a;马丁福勒论文 微服务是一种架构模式或者是一种架构风格&#xff0c;它提倡将单一应用程序划分位一组小的服务&#xff0c;每个服务运行在其独立的自己的进程中&#xff0c;服务之间互相协调&#xff0c;互相配合&#xff0c;为用户提供最终…

使用Riotee轻松实现无电池TinyML

论文标题&#xff1a;Demo: Battery-free TinyML Made Easy with Riotee 中文标题&#xff1a;演示&#xff1a;使用Riotee轻松实现无电池TinyML 作者信息&#xff1a; Kai Geissdoerfer&#xff0c;Nessie Circuits&#xff0c;邮箱&#xff1a;kai.geissdoerfernessie-circ…

stm32 rtx操作系统 堆(heap) 栈(stack) keil在线监测

STM32内存分为3块区域&#xff1a;全局/静态变量区、栈区、堆区 其中全局/静态变量区用于存放全局/静态变量&#xff08;包括指针变量&#xff09;&#xff0c; 栈区用于存放当前运行的函数及其中定义的局部变量和程序指针等&#xff0c; 堆区用于存放动态申请的内存&#xff0…

AI在医学领域:使用生成式深度学习和信号处理技术增强心脏听诊信号

心血管疾病&#xff08;CVD&#xff09;是全球死亡的主要原因&#xff0c;占2019年所有全球死亡的30%以上。为了有效地治疗CVD&#xff0c;准确诊断和评估心脏状况至关重要。心脏听诊&#xff08;CA&#xff09;是一种非侵入性方法&#xff0c;通过听取心脏产生的声音来检测和监…

日语学习零基础生活日语口语柯桥外语学校|股票用日语怎么说?

在日语中&#xff0c;“股票”可以说&#xff1a; • 株&#xff08;かぶ&#xff09; 这是最常用的表达方式&#xff0c;直接表示“股票”。 例如&#xff1a; 株を買う - 买股票 株を売る - 卖股票 • 株式&#xff08;かぶしき&#xff09; 这个词也是“股票”的意…

【C语言刷力扣】1832.判断句子是否为全字母句

题目&#xff1a; 法一 bool checkIfPangram(char* sentence) {int str[256];memset(str, 0, sizeof(int));for (int i 0; i < strlen(sentence); i) {str[ sentence[i] ];}for (int j a; j < z; j) {if (!str[j]) return false;}return true; } 法二 动态分配 typ…

微课录制 “绊脚石”,电脑录屏时PPT 与画板冲突及解决全析

在教育数字化转型的浪潮中&#xff0c;微课录制成为教师传授知识的新方式。最近&#xff0c;一位用户在评论区提出了一个常见问题&#xff1a;在使用画板功能辅助标注时&#xff0c;PPT无法正常切换&#xff0c;影响了微课的流畅性。这是一个典型的技术冲突问题&#xff0c;关系…

安防综合管理系统EasyCVR视频汇聚平台Linux环境下如何测试UDP端口是否正常开启?

视频汇聚EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。平台灵活性强&#xff0c;支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大…

kernel32.dll下载地址:如何安全地恢复系统文件

关于从网络上寻找kernel32.dll的下载地址&#xff0c;这通常不是一个安全的做法&#xff0c;而且可能涉及到多种风险。kernel32.dll是Windows操作系统的核心组件之一&#xff0c;负责内存管理、进程和线程管理以及其他关键系统功能。因为kernel32.dll是系统的基础文件&#xff…

国家海洋环境预报中心李本霞:全国首个海浪智能预报系统已投入业务化运行,AI助力海浪预报多项突破

近日&#xff0c;在第 20 届 CCF HPC China 2024 大会中&#xff0c;第六届海洋数值预报与高性能计算论坛圆满举办。在本次大会上&#xff0c;国家海洋环境预报中心海浪预报室主任李本霞以「人工智能在海浪预报中的应用」为主题展开演讲&#xff0c; HyperAI超神经在不违原意的…

Leetcode—1188. 设计有限阻塞队列【中等】(多线程)

2024每日刷题&#xff08;183&#xff09; Leetcode—1188. 设计有限阻塞队列 C实现代码 class BoundedBlockingQueue { public:BoundedBlockingQueue(int capacity) {sem_init(&enSem, 0, capacity);sem_init(&deSem, 0, 0);}~BoundedBlockingQueue() {sem_destroy(…