大家看下我这个分页算法性能上有没有什么问题:
// 相當于一个计数器,用来判断是否读到请求页
int num = 0;
// 总页数
int totalPageNum = 0;
while (resultSet.next()) {
RsList newRslist = new ObjectFactory().createMstQueryReqMsgMsgDataResultInfoRsList();
num++;
if (num > ((reqPageNum - 1) * eachPageRecordNum) && num < (reqPageNum * eachPageRecordNum + 1)) {
for (int i = 1; i < columnCount + 1; i++) {
ItemInfo itemInfo = new ObjectFactory().createMstQueryReqMsgMsgDataResultInfoRsListItemInfo();
itemInfo.setColName(resultSetMetaData.getColumnName(i));
itemInfo.setValue("" + resultSet.getObject(resultSetMetaData.getColumnName(i)));
newRslist.getItemInfo().add(itemInfo);
}
resultInfo.getRsList().add(newRslist);
}
totalPageNum++;
}
result = resultInfo.getRsList().size();
resultInfo.setTotelPageNum(totalPageNum);
resultInfo.setResult(result);
// 相當于一个计数器,用来判断是否读到请求页
int num = 0;
// 总页数
int totalPageNum = 0;
while (resultSet.next()) {
RsList newRslist = new ObjectFactory().createMstQueryReqMsgMsgDataResultInfoRsList();
num++;
if (num > ((reqPageNum - 1) * eachPageRecordNum) && num < (reqPageNum * eachPageRecordNum + 1)) {
for (int i = 1; i < columnCount + 1; i++) {
ItemInfo itemInfo = new ObjectFactory().createMstQueryReqMsgMsgDataResultInfoRsListItemInfo();
itemInfo.setColName(resultSetMetaData.getColumnName(i));
itemInfo.setValue("" + resultSet.getObject(resultSetMetaData.getColumnName(i)));
newRslist.getItemInfo().add(itemInfo);
}
resultInfo.getRsList().add(newRslist);
}
totalPageNum++;
}
result = resultInfo.getRsList().size();
resultInfo.setTotelPageNum(totalPageNum);
resultInfo.setResult(result);
至于总页数totalPageNum,不要result.next()一条条过, 另外写一个select count(*)的sql来计算.