在 JSP 中打印 ResultSet 值直到一定数量

Print the ResultSet values upto a certain number in JSP

这个问题有点奇怪,不过这两天一直在追

我已将 ResultSet 对象发送到 JSP 页面以显示记录。它使用 while(rs.next()){} 显示 JSP 中结果集的所有记录。

我的问题是:是否有任何方法可以将结果集的记录从某个number_of_row打印到某个number_of_row?,例如我想打印行号 3 到 6 之间的记录。

我不希望 Java 类 承受像 SQL 这样的负载: SELECT * FROM ......LIMIT 3,3;

我希望 JSP 采取措施做到这一点,例如while(rs.next(从 3 到 6)){} 有什么帮助吗?提前致谢。

在 jsps 中处理结果集有点过时,不推荐使用。也就是说,您可以使用 ResultSet.absolute(int position) 移动到特定行,然后循环计算迭代次数。

http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#absolute(int)

int cont=0;
int min=3;
int max=6;
while (rs.next() && cont < max){
    cont++;
    if (cont>=min){
        //print
    }
}

ResultSet 有方法,absolute() 获取行号。

所以你可以简单地使用:

rs.absolute(3);
while(rs.next()) {
    if(6 < rs.getRow()) {//get current row no
        break;
    }
    //get data
}

ResultSet接口的absolute method会帮助你

boolean absolute(int row) throws SQLException

Documentation所说

Moves the cursor to the given row number in this ResultSet object.

If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.

If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. For example, calling the method absolute(-1) positions the cursor on the last row; calling the method absolute(-2) moves the cursor to the next-to-last row, and so on.

If the row number specified is zero, the cursor is moved to before the first row.

An attempt to position the cursor beyond the first/last row in the result set leaves the cursor before the first row or after the last row.

Note: Calling absolute(1) is the same as calling first(). Calling absolute(-1) is the same as calling last().

将光标移动到任何特定的行并读取到任何你想要的地方,你可以使用 getRow() 来了解 ResultSet 光标指向的特定行