可能的重复:
PLSQL JDBC:如何获取最后一行ID? https://stackoverflow.com/questions/3552260/plsql-jdbc-how-to-get-last-row-id
我已经实现了一个触发器和一个用于自动递增 PK 的序列,我使用 Oracle 10g 作为数据库。
现在我想使用 JAVA 插入一些东西,但是我需要在插入之后将增加的 PK 保存在变量中。我试过这个:
PreparedStatement pstmt = connection.prepareStatement("INSERT INTO sometable
VALUES(?, ?)",
Statement.RETURN_GENERATED_KEYS);
pstmt.setInt(1, 5);
pstmt.setString(2, "Username");
pstmt.executeUpdate();
ResultSet resultSet = pstmt.getGeneratedKeys();
但这不起作用。
您需要指定要检索的可能生成的密钥。
PreparedStatement pstmt = conn.prepareStatement(sql,new String [] {"ID_ORDER"});
请注意,列名称区分大小写。最后,需要 JDBC 3.0 驱动程序和 Oracle 10g R2 或更高版本。
您可以通过检查 DatabaseMetaData 来检查当前安装是否支持此机制:
DatabaseMetaData metaData = conn.getMetaData();
log("SupportsGetGeneratedKeys?="+metaData.supportsGetGeneratedKeys());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)