最近在调试的时候遇到一个问题,一旦查询的数据量少,查询就没有结果。
查看mybatis日志,看到只执行了一个count(1)的语句,统计当前查询的结果数量。
后面查了一下才发现,是页码的问题。
不知道为啥前端那边传过来的页码是4,这样如果数据量不足以达到4页的时候,查第四页就没有数据。也就查不到数据。
mybatis的IPage分页查询功能,是先用count(1)来计算本次查询的数据数量,因为count(1)可以走索引,效率比较高。然后根据分页大小去算能分多少页,如果达不到传过来的页码,就直接不查询了,如果能达到。则按照页码来计算偏移量来查询对应页的数据。