使用JDBC读取和更新每一行

时间:2013-04-15 01:51:21

标签: java mysql jdbc

我能够很好地阅读查询的每一行,但我还想在阅读时更新字段。

添加两个rs.update行时,以下代码会中断。

Connection con = DriverManager.getConnection(url, user, pass);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                           ResultSet.CONCUR_UPDATABLE)
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
  amount = rs.getInt("amount");
  username = rs.getString("username");

  rs.updateString("processed", "true");
  rs.updateRow();
}

看来我找到了答案:

[SEVERE] com.mysql.jdbc.NotUpdatable:结果集不可更新(引用的表没有主键)。此结果集必须来自使用结果集类型ResultSet.CONCUR_UPDATABLE创建的语句,查询必须只选择一个表,不能使用函数,必须从该表中选择所有主键。有关更多详细信息,请参阅JDBC 2.1 API规范,第5.6节。

将主键添加到我的数据库并不会有什么坏处,无论如何这可能是正确的方法。

1 个答案:

答案 0 :(得分:0)

我将主键添加到我的数据库中,它的工作非常精彩。

谢谢!