Mybatis-PageHelper
Mybatis-PageHelper copied to clipboard
如果pageNum和pageSize的值比较大,导致startRow溢出变成负数
- [x] 我已在 issues 搜索类似问题,并且不存在相同的问题.
异常模板
使用环境
- PageHelper 版本: 5.2.0
- 数据库类型和版本: MySQL 8.0.18
- JDBC_URL: NA
SQL 解析错误
分页参数
PageHelper.startPage(2099999999, 100);
原 SQL
NA
pageNum=2099999999, pageSize=100
期望的结果:
startRow=209999999800
完整异常信息
startRow=-453397704
其他类型的错误
功能建议
详细说明,尽可能提供(伪)代码示例。 com.github.pagehelper.Page的calculateStartAndEndRow方法 this.startRow = this.pageNum > 0 ? (this.pageNum - 1) * this.pageSize : 0; 修改为 this.startRow = this.pageNum > 0 ? (long) (this.pageNum - 1) * this.pageSize : 0; 或者 this.startRow = this.pageNum > 0 ? 1L* (this.pageNum - 1) * this.pageSize : 0;

建议pageNum、pageSize 数据类型改为long 类型的, 不然数据过大后就变为负数了
这么大的数据量还这样分页吗?