通过ResultSet反向检索数据时发生java NullPointerException
Statement createStatement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet executeQuery = createStatement.executeQuery("select * from stu");
executeQuery.afterLast();
while (executeQuery.previous()) { //15th line<--exception occurs at this place after first record is retrieved
int rollno = executeQuery.getInt(1);
System.out.println("rollno " + rollno + " name " + executeQuery.getString(2));
if (rollno == 1) {
if (createStatement.executeUpdate("update stu set name=" + "'vinay'" + "where rollno=1") >= 1) {
System.out.println("row updated");
}
}
}
输出:
rollno 1 name vinay
行更新
//检索到第一条记录后,它会引发异常
Exception in thread "main" java.lang.NullPointerException
at oracle.jdbc.driver.ScrollableResultSet.previous(ScrollableResultSet.java:630)
at com.vk.db.ScrollableResultSet.main(ScrollableResultSet.java:15)
# 1 楼答案
尝试改变
与
或者使用类似的while循环
# 2 楼答案
错误原因是回收语句对象。请尝试以下代码/
注意。查询不能使用
SELECT * from table