mybatis 分页问题 (个人认为算是个bug)

问题描述:相同的查寻条件, 分页显示的结果和.net版本的分页结果数量一样,排序不一样, 不同的页有相同的数据。比如:第2面和第3页都有同一条相同的数据。

核心代码:

1 //自己实现
2         int totalRows = mapper.selectCountByExample(example);
3         pager.setTotalRows(totalRows);
4         int offset=(pager.getPageNo()-1)*pager.getPageSize();
5         int limit = pager.getPageSize();
6         RowBounds rowBounds = new RowBounds(offset,limit);
7         List<T> list = mapper.selectByExampleAndRowBounds(example,rowBounds);

生成的sql语句:

1   SELECT *
2     FROM (SELECT TMP_PAGE.*, ROWNUM ROW_ID
3             FROM (SELECT *
4                     FROM ORDER_statistics
5                    WHERE userid = 2458 and 
6                    (createDate >= to_date('2017-10-01','yyyy-MM-dd')  and createDate<= to_date('2017-10-10','yyyy-MM-dd') )
7                    order by TongJiDate DESC) TMP_PAGE
8            WHERE ROWNUM <= 10)
9    WHERE ROW_ID > 5

当TongJiDate 同一时间有很多数据的时候,会导致。第二页和第三页都显示出一个想同的数据,(也可能是我使用的方式不对,目前还不找到)

 

.net版本的框架生成的语句:

 1 SELECT *
 2 FROM (SELECT ROWNUM RN, H.*
 3 FROM ((SELECT *
 4 FROM ORDER_statistics
 5 WHERE OWNER_CENTER_ID = 2458
 6 AND (createDate >= to_date('2017-10-01', 'yyyy-mm-dd'))
 7 AND (createDate <= to_date('2017-10-10', 'yyyy-mm-dd'))
 8 ORDER BY TongJiDate desc) H)) Z
 9 WHERE Z.RN <= 10
10 AND Z.RN > 5

在界面显示的,没有任务问题,sql也比较符合常人思维逻辑。 个人觉得

 

转载于:https://www.cnblogs.com/sun-net/p/7778238.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值