JDBC如何在自动增量字段中插入记录

时间:2013-04-25 16:15:36

标签: java jdbc

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

id | name | description

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

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

但它不起作用。我得到了一个execption。这是因为我没有指定id列值。但是我怎么指定它呢?是不是有任何选项让JDBC自动插入它?或者某种方式在插入记录之前检索生成的密钥?

1 个答案:

答案 0 :(得分: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");