解决pageHelper分页失效以及如何配置问题
pageHelper分页失效及配置问题
我在使用pageHelper的系统中加入mybatis-plus, 结果所有分页都失效了
原因
我这边的失效原因初步定为是因为mybatis-plus的自动配置和pageHelper的自动配置冲突了, 导致pageHelper的自动配置失效(最终是加上个配置类解决的)
解决方案
新建一个配置类
/**
* @Author: WanG
* @Date: 2019-05-13 18:42
* @version: v1.0
* @description: TODO
*/
@Configuration
public class MybatisConfig {
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}PageHelper分页无效及报错
第一种情况SQL报错
> Error querying database. Cause: java.sql.SQLSyntaxErrorException: You
> have an error in your SQL syntax; check the manual that corresponds to
> your MySQL server version for the right syntax to use near 'LIMIT 5'
> at line 3
原因:在xml写的sql带了分号,由于PageHelper会在sql尾部追加limit,所以导致生成sql时有误,导致错误。
错误写法:
<select id="selectAll" resultMap="BaseResultMap"> SELECT * FROM student; </select>
正确写法:
<select id="selectAll" resultMap="BaseResultMap"> SELECT * FROM student </select>
第二种情况分页无效
原因:可能是代码前后顺序有问题,应该先写分页,再执行sql。
错误写法:
List<Student> students = studentMapper.selectAll(); PageHelper.startPage(1, 5, true);
正确写法:
PageHelper.startPage(1, 5, true); List<Student> students = studentMapper.selectAll();
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring @Cacheable注解类内部调用失效的解决方案
这篇文章主要介绍了Spring @Cacheable注解类内部调用失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-01-01
使用TraceId在Spring Cloud中实现线上问题快速定位
在微服务架构中,服务间的互相调用使得问题定位变得复杂,在此背景下,TraceId为我们提供了一个在复杂环境中追踪请求路径和定位问题的工具,本文不仅介绍TraceId的基本概念,还将结合真实场景,为您展示如何在Spring Cloud中应用它2023-09-09
java读取文件内容的三种方法代码片断分享(java文件操作)
本文介绍java读取文件内容的三种方法,代码可以直接放到程序中使用,大家参考使用吧2014-01-01


最新评论