我已将ResultSet对象发送到JSP页面以显示记录。它使用while(rs.next()){}在JSP中显示结果集的所有记录。
我的问题是:是否有任何方法可以将结果集的记录从某个number_of_row打印到某个number_of_row ?,例如我想在行号3到6之间打印记录。
我不希望Java Classes接受像SQL这样的加载:SELECT * FROM ...... LIMIT 3,3;
我希望JSP采取措施来做到这一点,例如while(rs.next(从3到6)){} 有帮助吗?提前完成。
答案 0 :(得分:0)
在jsps中处理结果集是一种史前的,不推荐。也就是说,您可以使用ResultSet.absolute(int position)移动到特定行,然后在循环中计算迭代次数。
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#absolute(int)
答案 1 :(得分:0)
int cont=0;
int min=3;
int max=6;
while (rs.next() && cont < max){
cont++;
if (cont>=min){
//print
}
}
答案 2 :(得分:0)
ResultSet有方法absolute(),它取行号
所以你可以简单地使用:
rs.absolute(3);
while(rs.next()) {
if(6 < rs.getRow()) {//get current row no
break;
}
//get data
}
答案 3 :(得分:0)
ResultSet接口的absolute method
将帮助您
boolean absolute(int row) throws SQLException
正如Documentation所说
将光标移动到此ResultSet对象中的给定行号。
如果行号为正,则光标移动到给定行 相对于结果集开头的数字。第一排 是第1行,第二行是第2行,依此类推。
如果给定的行号为负数,则光标移动到绝对值 相对于结果集末尾的行位置。例如, 调用方法absolute(-1)将光标定位在最后一行; 调用方法absolute(-2)将光标移动到倒数第二个 行等,等等。
如果指定的行号为零,则光标移动到之前 第一行。
尝试将光标定位在\ n中的第一行/最后一行之外 结果集将光标留在第一行之前或最后一行之后 行。
注意:调用absolute(1)与调用first()相同。调用 absolute(-1)与调用last()相同。
将光标移动到任何特定行并读到任何您想要的位置,您可以使用getRow()来了解ResultSet光标指向的特定行