开发者

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

开发者 https://www.devze.com 2023-04-07 10:32 出处:网络 作者: __WanG
目录pageHelper分页失效及配置问题原因解决方案PageHelper分页无效及报错第一种情况SQL报错第二种情况分页无效总结pageHelp编程客栈er分页失效及配置问题
目录
  • pageHelper分页失效及配置问题
    • 原因
    • 解决方案
  • PageHelper分页无效及报错
    • 第一种情况SQL报错
    • 第二种情况分页无效
  • 总结

    pageHelp编程客栈er分页失效及配置问题

    我在使用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 query编程ing database.  Cause: Java.sandroidql.SQLSyntaxErrorException: You

    > have an error in you编程客栈r SQL syntax; check the manual that corresponds to

    > your my开发者_Js入门sql 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
    </jnZgUSselect>

    第二种情况分页无效

    原因:可能是代码前后顺序有问题,应该先写分页,再执行sql。

    错误写法:

    List<Student> students = studentMapper.selectAll();
    PageHelper.startPage(1, 5, true);

    正确写法:

    PageHelper.startPage(1, 5, true);
    List<Student> students = studentMapper.selectAll();

    总结

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

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号