zoukankan      html  css  js  c++  java
  • Mybatis莫名自动分页?PageHelper自动分页(踩坑)

    问题描述:

    用mybatis进行mysql查询list时,没有使用PageHepler.startPage方法,打印出的sql自动查询了count,并且进行了limit,其中入参中包含pageNum和pageSize参数,切都不为null

     携带了limit

    原因:supourt-methods-arguments设置为true了,并且入参包含pageNum、pageSzie两个参数且都不为空

    解决方法(从源码分析中得到的方法):

    1. 将pageNum或pagSize参数中的一个命名为其他值
    2. 将pageNum或pageSize参数中的一个设置为null
    3. 将supourt-methods-arguments设置为false(默认为false)

    源码排查原因:

     1、通过pageHelper的自动配置,查出pageHelper的启动文件

    2、通过启动文件找到pageHelper对应的拦截器

    3、通过断点调试,查看pageHelper的处理逻辑

     PageObjectUtil

     通过上面的两端源码我们看出如果设置了supportMethodsArguments值为true,他会去获取参数中是否有pageNum和pageSize,如果两者都不为空,会返回一个new Page (这和PageHelper.startPage最后调用异曲同工)

    小收获

    通过上面的源码可以看出,orderBy默认false,当有参数名字为orderBy时,会自动设置排序(意外收获)

    愿你眼中有光芒,活成你想要的模样
  • 相关阅读:
    chlick 在 blur 之后触发
    屏蔽运营商广告
    script标签清除缓存
    http-equiv 详解
    jqLite
    js 时间戳和转换-转载
    JS数组的常用方法
    js 前端实现文件流下载的几种方式
    解决兼容性的库
    移动端兼容性问题
  • 原文地址:https://www.cnblogs.com/SmallStrange/p/15308442.html
Copyright © 2011-2022 走看看