2

我正在使用 Postgresql 和 Mysql 的自动增量等效 SERIAL。我的表结构如下:

id | name | description

如何插入使用结果集的新记录(实际上是 CachedRowSet,但它是相似的)?我试过这个:

rs.moveToInsertRow();
rs.updateString("name", "x");
rs.updateString("description", "xxx");
rs.insertRow();
rs.moveToCurrentRow();

但它不起作用。我得到一个例外。这是因为我没有指定 id 列值。但是我该如何指定呢?没有任何选项可以让 JDBC 自动插入它吗?或者在插入记录之前检索生成的键的某种方法?

4

1 回答 1

2

要创建可更新的结果集,您必须在选择列表中指定主键:

    // Create a statement that will return updatable result sets
    Statement stmt = connection.createStatement(
                ResultSet.TYPE_SCROLL_SENSITIVE, 
                ResultSet.CONCUR_UPDATABLE);

    //Primary key / auto-increment 'id' must be specified 
    //so that the result set is updatable
    ResultSet rs = stmt.executeQuery(
                "SELECT id, name, description FROM yourtable");
于 2013-04-25T16:19:29.373 回答