boolean next() throwsMoves the cursor forward one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.
When a call to the next method returns false, the cursor is positioned after the last row. Any invocation of a ResultSet method which requires a current row will result in a SQLException being thrown. If the result set type is TYPE_FORWARD_ONLY, it is vendor specified whether their JDBC driver implementation will return false or throw an SQLException on a subsequent call to next.
If an input stream is open for the current row, a call to the method next will implicitly close it. A ResultSet object's warning chain is cleared when a new row is read.
Statement statement = conn.createStatement(); ResultSet res = statement.executeQuery(selectSql); if (!res.next()) { //res is null } else { // res is not null }获取查询结果的行数 JDBC并没有直接提供获取查询结果总行数的方法给我们调用,为此我们需要使用间接的手段来执行:
ResultSet res = ...使用某种方法获取查询结果 int nRow = 0; while(res.next()) { ++nRow; } res.beforeFirst(); // 其他代码不变
ResultSet res = ...使用某种方法获取查询结果 res.last(); final int nRow = res.getRow(); res.beforeFirst(); // 其他代码不变