分页类QueryData是 Source code recreated from a class file by IntelliJ IDEA powered by FernFlower decompilerpackage comredxuncommonbaseentity;import javautilHashMap;import javautilMap;public class QueryDat
这段代码是一个分页查询类QueryData的实现。根据输入的pageSize和pageNo来设置查询的起始位置和查询的数量。
这段代码的问题是:
- 没有对pageSize和pageNo进行合法性校验,可能导致查询的起始位置和数量超出实际数据范围。
- 没有对pageSize和pageNo进行防止为负数的处理,可能导致查询出错。
- 没有对pageSize和pageNo进行默认值设置,可能导致查询时默认值错误。
优化建议:
- 对pageSize和pageNo进行合法性校验,确保其大于等于1。
- 对pageSize和pageNo进行防止为负数的处理,如果为负数则设置为默认值1。
- 对pageSize和pageNo进行默认值设置,如果为空则设置为默认值1。
- 修改代码逻辑,根据pageSize和pageNo计算起始位置和数量,避免设置错误的值。
优化后的代码如下:
Integer pageSize = queryData.getPageSize();
Integer pageNo = queryData.getPageNo();
// 校验 pageSize 和 pageNo,确保其大于等于1
if (pageSize == null || pageSize < 1) {
pageSize = 1;
}
if (pageNo == null || pageNo < 1) {
pageNo = 1;
}
// 计算起始位置和数量
int startIndex = (pageNo - 1) * pageSize;
int count = pageSize;
queryData.setPageNo(startIndex);
queryData.setPageSize(count);
通过上述优化,可以避免查询时出现超出数据范围的问题,同时也可以确保pageSize和pageNo的合法性和默认值设置。
原文地址: https://www.cveoy.top/t/topic/i8aE 著作权归作者所有。请勿转载和采集!