ibatis中有一个处理分页的方法,为什么当ResultSet为TYPE_FORWARD_ONLY 时不能直接用absolute? na
private void handleResults(RequestScope request, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
try {
request.setResultSet(rs);
ResultMap resultMap = request.getResultMap();
if (resultMap != null) {
// Skip Results
if (rs.getType() != ResultSet.TYPE_FORWARD_ONLY) {
if (skipResults > 0) {
rs.absolute(skipResults);
}
} else {
for (int i = 0; i < skipResults; i++) {
if (!rs.next()) {
return;
}
}
} // Get Results
int resultsFetched = 0;
while ((maxResults == SqlExecutor.NO_MAXIMUM_RESULTS || resultsFetched < maxResults) && rs.next()) {
Object[] columnValues = resultMap.resolveSubMap(request, rs).getResults(request, rs);
callback.handleResultObject(request, columnValues, rs);
resultsFetched++;
}
}
} finally {
request.setResultSet(null);
}
}
private void handleResults(RequestScope request, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
try {
request.setResultSet(rs);
ResultMap resultMap = request.getResultMap();
if (resultMap != null) {
// Skip Results
if (rs.getType() != ResultSet.TYPE_FORWARD_ONLY) {
if (skipResults > 0) {
rs.absolute(skipResults);
}
} else {
for (int i = 0; i < skipResults; i++) {
if (!rs.next()) {
return;
}
}
} // Get Results
int resultsFetched = 0;
while ((maxResults == SqlExecutor.NO_MAXIMUM_RESULTS || resultsFetched < maxResults) && rs.next()) {
Object[] columnValues = resultMap.resolveSubMap(request, rs).getResults(request, rs);
callback.handleResultObject(request, columnValues, rs);
resultsFetched++;
}
}
} finally {
request.setResultSet(null);
}
}
解决方案 »
- 键盘上每一个键和它的Keycode
- 怎么调用其它类的公有变量(2个类是同一个包里面的)
- discuz6.0的验证码识别有人做过吗
- 问问
- JTable如何使列宽度自适应内容呢?
- *求* 学习java已有一段时间,可惜没东西试手,大哥大姐们有什么东东,让小弟替你做试试%……—%¥
- 在我机子上打开网页可以显示CLASS在其它的机子中为什么不能显示?
- 请问Java中怎样将字符串转化为浮点数类型?
- 俺初学Java,有个问题请教,写了一段Java小程序(看里面),为什么没有运行结果:
- 怎么在Java Applet中点击按钮弹出Ie窗口
- 在java开发中 怎样更换标题栏默认的coffe图标
- 偶是菜鸟,想知道怎样用Applet在服务器端生成数据.
该常量指示指针只能向前移动的 ResultSet 对象的类型。
你都FORWARD ONLY了,游标怎么回起始位置?
看例子:
当前在第20行,如果你 rs.absolute(10);那么就是倒退10行了,这样的话还是FORWARD ONLY吗?既然确定了是TYPE_FORWARD_ONLY,就只能rs.next();