我正在使用Postgresql和Mysql的自动增量等效SERIAL。我的表结构如下:
id | name | description
如何插入使用结果集的新记录(实际上是CachedRowSet,但它类似)?我试过这个:
rs.moveToInsertRow();
rs.updateString("name", "x");
rs.updateString("description", "xxx");
rs.insertRow();
rs.moveToCurrentRow();
但它不起作用。我得到了一个execption。这是因为我没有指定id列值。但是我怎么指定它呢?是不是有任何选项让JDBC自动插入它?或者某种方式在插入记录之前检索生成的密钥?
答案 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");