java - 如何在循环 while 循环后将结果集重置为第一行

标签 java resultset

我的代码有两个循环,对于外循环的第一行,我的外循环应该遍历内循环的所有行,而对于外循环的第二行,它应该遍历内排。

int y1,y2;
float t = 0,s1,s2;

while(rm.next())
{
    int currentCol = 0;

    cellNumber = new jxl.write.Number (currentCol++, currentRow, index, integerFormat);
    index++;
    sheet.addCell ( cellNumber );

    cellLabel = new Label(currentCol++, currentRow, rs.getString("Name"));
    sheet.addCell ( cellLabel );


    y1 = rm.getInt("Year");

    System.out.println("Year 1: " +y1);


    cellNumber = new jxl.write.Number (currentCol++, currentRow, y1 , integerFormat);
    sheet.addCell ( cellNumber );



    s1 = rm.getFloat("Total_Price");
    System.out.println("S1: "+s1);

    while (rs.next())
    {
        y2 = rs.getInt("Year");
        System.out.println("Year 2: " +y2);

        s2 = rs.getFloat("Total_Price");
        System.out.println("S2: " +s2);

        if(y1==y2)
        {
            t = s1+s2;    
            System.out.println("Toatl Sales:" +t);

            cellNumber = new jxl.write.Number (currentCol++, currentRow, t , priceformat);
            sheet.addCell ( cellNumber );

        }


    } 
    int a = rs.getFetchDirection();
    System.out.println("Direction: " +a);

    rs.setFetchDirection(ResultSet.FETCH_REVERSE);


    cellNumber = new jxl.write.Number (currentCol++, currentRow, s1 , priceformat);
    sheet.addCell ( cellNumber );




    currentRow++;

}

最佳答案

使用这个:

resultSet.beforeFirst()

来自文档:

Throws: SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY

关于java - 如何在循环 while 循环后将结果集重置为第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880940/

相关文章:

java - 如何在 Java 中使用正则表达式捕获多行模式?

java - 结果集无法遍历

java - Android Studio,ProGuard 无法计算 Classes.jar 的哈希值

java - 我如何控制垃圾收集器?

Java 可变对象作为映射键但使用默认的 hashCode()

java - 执行查询后结果集立即关闭

java - 在java中检索MySQL时间

java - 如何从结果集中检索值并将其用于计算

java - 从 Oracle DB 获取可滚动的结果集

Java高效可序列化多对一映射