结果集不可更新



我正在用Java(NetBeans 7.3.1)做一个简单的GUI应用程序,在该应用程序中,我使用ResultSet来检索和更新NetBeans虚拟数据库中的数据。

我创建了数据库"Employees"和一个表"WORKERS"。很难,我无法更新其中的数据。

代码是

public void doConnect() {
    String host = "jdbc:derby://localhost:1527/Employees";
    String uName = "adm";
    String uPass = "admin";
    String SQL = "SELECT * FROM APP.WORKERS ORDER BY ID";
    try {
        con = DriverManager.getConnection(host, uName, uPass);
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
        rs = stmt.executeQuery(SQL);
        int conc = rs.getConcurrency();
        System.out.println(conc);
        rs.next();
        int id_col = rs.getInt("ID");
        String first_name = rs.getString("First_Name");
        String last_name = rs.getString("Last_Name");
        String job = rs.getString("Job_Title");
        System.out.println(id_col + " " + first_name + " " + last_name + " " + job);
        textId.setText(Integer.toString(id_col));
        textName.setText(first_name);
        textLast.setText(last_name);
        txtJob.setText(job);
    } catch (SQLException ex) {
        System.out.println(ex.getMessage());
    }
}

getConcurrency();的结果为1007(ReadOnly)。我做错了什么?我找不到错误。

这不是因为您使结果集在rs.deleteRow();之后可更新吗?也许如果你放置

stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

在CCD_ 3之前它工作。

您可以尝试在变量con下的try-catch子句中写入以下内容:

con.setReadOnly(false);

如果这不能解决问题,您必须找到一种方法来访问NetBeans中的数据库选项,并确保数据库对象的访问和使用设置为可编辑/可更新/读写。由于我使用Eclipse,而且我的NetBeans技能有点生疏,所以我无能为力。

相关内容

  • 没有找到相关文章

最新更新