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

本篇内容主要讲解“怎么解决pageHelper分页失效及如何配置问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决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();

    到此,相信大家对“怎么解决pageHelper分页失效及如何配置问题”有了更深的了解,不妨来实际操作一番吧!这里是蜗牛博客网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    评论

    有免费节点资源,我们会通知你!加入纸飞机订阅群

    ×
    天气预报查看日历分享网页手机扫码留言评论Telegram