使用开源分页插件PageHelper的时候,发现两个问题:

  1. 发现数据有重复,即第一页的数据在第二页同样出现,总数是正确的;
    在这里插入图片描述
    在这里插入图片描述
  2. 只有两页的情况下,获取第三页也有数据,且是第二页的数据;

sql语句是有ORDER BY 语句,发现是因为ORDER BY的字段是时间的问题,MySQL的timestamp精确到秒,而我的记录是批量插入的,都是同一秒,时间是相同的,所以会出现这种问题,解决办法是ORDER BY的字段要尽可能不一样。如果要精确,可以指定字段:

     datetime0  datetime,  // 到秒
    datetime1 datetime(1), // 到毫秒
    datetime2 datetime(2),
    datetime3 datetime(3)

第二个问题是需要修改一下PageHelper的配置就可以:

pagehelper:
  helperDialect: mysql
  reasonable: false
  supportMethodsArguments: true
  params: count=countSql

reasonable: true会出现问题2,改成false即可,当 reasonable: true的时候,pageNo<1的时候会返回第一页,pageNo>最大页的时候会返回最后一页。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐