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");      
        }
    }
}

Output:

rollno 1 name vinay

rollno 1名称vinay

row updated

//After first record is retrieved it throws exception

//在检索到第一条记录后,它会抛出异常

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)

2 个解决方案

#1


1

The cause of error is recycling statement object. Try this code/

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

   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();
            }
        }

Note. A query cannot use SELECT * from table

注意。查询不能使用表中的SELECT *

更多相关文章

  1. 将下面语句插入到SQLSERVER数据库中出现“将字符串转换为 unique
  2. 老鸟帮帮忙:能用字数最少的SQL语句来实现以下查询功能吗?分虽少但
  3. 用sql语句如何实现小数位数四舍六入,小数位数是五的不变?
  4. sqlserver各种注释语句的写法
  5. 关于sql语句的多重循环
  6. 深度探索 -- 生成SQL语句的向导应如何做?
  7. 检索SQL语句的输出参数
  8. oracle:使用cmd命令在远程oracle服务器上执行sql语句
  9. SQL语句字符串

随机推荐

  1. Linux 常用命令使用英文全称
  2. 【Azure】两台Linux虚拟机挂载共享文件
  3. Linux QT5.2下编译MySQL5.6.7驱动
  4. Linux使用wget下载整站
  5. Linux下SVN服务器安装配置及客户端安装说
  6. Ubuntu(16.04.2)学习笔记(一)如何解决dpkg:
  7. 使用Bash编写Linux Shell脚本-9. 参数和
  8. REDIS从LINUX文件写入批量数据
  9. Android usb client mass-storage 多存储
  10. linux 命令 grep 不使用 正则表达式