关于mybatis使用PageHelper分页插件冲突以及解决方案
分页插件其实,可以提高我们的开发效率,如果我们自己手写、1会嫌麻烦,2需要写两条一条写count一条写list,虽然他底层也是这么实现的,但是不需要我们手动来写。好的工具能让你事半功倍
其实这个问题是一个问题衍生出的几个问题
首先先导入依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
可能有些人用的不是springboot的starter,在这里建议你们用,因为非springboot starter的非常容易失效,极其不稳定。
非starter依赖如下:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
用法:
// 放在执行sql的前面一行,会自动根据你的pageNo和pageSize自动拼接sql
PageHelper.startPage(pageNo,pageSize);
List<SysUserEntity> sysUserEntities = baseMapper.queryUserList(isInner);
// 用PageInfo接收分页信息,比如total(总条数)、list(当前页数据)、pageNum(页码)、pageSize(页大小)等等属性
PageInfo<SysUserEntity> pageInfo = new PageInfo<>(sysUserEntities);
问题:
// 失效、不拼接sql
PageHelper.startPage(pageNo,pageSize);
出现这个问题有两种可能:
-
和其他依赖版本冲突导致,比如说冲突的原因可能有和springboot
、mybatis
冲突,我这里的版本是2.3.6.RELEASE
,往后我不知道行不行,反正往前是不行。然后mybatis-plus
版本是改成3.4.0
-
配置sql方言,也就是说目前分页插件是不知道你的db用的是什么,此时你需要在yml里配置,配置如下:
#配置分页插件方言
pagehelper:
helperDialect: mysql