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

时间:2015-02-19 08:42:26

标签: java jsp jdbc resultset

这个问题有点奇怪,但我最近几天都在追问它。

我已将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)){} 有帮助吗?提前完成。

4 个答案:

答案 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光标指向的特定行