java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > pageHelper分页失效及配置问题

解决pageHelper分页失效以及如何配置问题

作者:__WanG

这篇文章主要介绍了解决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();

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文