gpt4 book ai didi

java - 通过 ResultSet 在 Reverse 中检索数据时出现 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 07:47:23 24 4
gpt4 key购买 nike

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)

最佳答案

错误原因是回收statement对象。试试这个代码/

   Statement createStatement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet executeQuery = createStatement.executeQuery("select id, name from stu");
executeQuery.afterLast();
while (executeQuery.previous()) {
int rollno = executeQuery.getInt("id");
System.out.println("rollno " + executeQuery.getString("id") + " name " + executeQuery.getString("name"));
if (rollno == 1) {
executeQuery.updateString("NAME", "new value");
executeQuery.updateRow();
}
}

注意。查询不能使用SELECT * from table

关于java - 通过 ResultSet 在 Reverse 中检索数据时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33735282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com