0

我已经看到了这个(和类似的)问题,解释了如何插入和获取生成的 ID。不幸的是,到目前为止,我发现的任何解决方案都不适用于我当前的设置。

我的代码目前如下所示:

rs.moveToInsertRow();
rs.updateObject(...)
rs.updateObject(...)
rs.updateObject(...)
...
rs.insertRow();

插入的字段都不包含 ID。ID 由数据库生成。在 rs.insertRow(); 之后 我想获取该行的 ID。

rs.getObject("ID");插入后使用给了我

com.microsoft.sqlserver.jdbc.SQLServerException: The result set has no current row.

有什么方法可以使这项工作按原样进行,还是我必须重做才能删除游标并使用带有返回键的 INSERT 语句?

4

1 回答 1

1

以下代码似乎对我有用(到目前为止我观察到的所有情况):

rs.moveToInsertRow();
rs.updateObject(...)
rs.updateObject(...)
rs.updateObject(...)
...
rs.insertRow();

rs.last();
return rs.getObject("ID");

这适用于 SQL Server 2012,使用自动递增 1。

使用其他驱动程序或配置可能无法正常工作。

于 2014-07-18T19:08:48.757 回答