当在Java中执行while(rs.next)时,跳过Resultset的第一行

cse*_*sel 0 java jdbc

我正在尝试在java类中获取SQL查询的结果集.问题是我的表的第一行永远不会显示在我的UI上.所以我调试了它.

当第一次执行while循环时,while(rs.next)行执行然后它不进入循环,返回到while循环的开头并while(rs.next)再次执行行,现在它进入while循环并设置结果集.

但由于它没有在第一次进入循环,我的表的第一行没有设置到结果集中.

我在这里找不到问题.

我试过do{} while(rs.next)但有时它会抛出疲惫的结果集异常

    String SQL_QUERY = select * from my_table;
Statement stt = null;
stt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
    ResultSet.CONCUR_UPDATABLE,
                ResultSet.HOLD_CURSORS_OVER_COMMIT);

ResultSet rs = stt.executeQuery(SQL_QUERY);
if (rs != null) {
    rs.absolute(startRow); // I need to go to some specific row according to users request that is why I used this
} 

while(rs.next){
    // rs.getString...
}
Run Code Online (Sandbox Code Playgroud)

tal*_*lex 6

替换while

do {
    //old body here            
} while (rs.next())
Run Code Online (Sandbox Code Playgroud)

执行身体后的这种施工检查条件.有效地跳过第一个next电话.

您可能想查看结果rs.absolute(startRow).如果它false然后结果集包含少于startRow行.