首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >插入行JDBC的主键?

插入行JDBC的主键?
EN

Stack Overflow用户
提问于 2019-05-21 00:09:12
回答 2查看 0关注 0票数 0

是否有跨数据库平台方式来获取刚刚插入的记录的主键?

我注意到这个答案说你可以通过Calling得到它SELECT LAST_INSERT_ID(),我认为你可以调用SELECT @@IDENTITY AS 'Identity';有一种常见的方法在jdbc中的数据库中做这个吗?

如果不是,你会如何建议我为一段可以访问任何SQL Server,MySQL和Oracle的代码实现这个?

EN

回答 2

Stack Overflow用户

发布于 2019-05-21 08:26:58

复制自我的代码:

代码语言:javascript
复制
pInsertOid = connection.prepareStatement(INSERT_OID_SQL, Statement.RETURN_GENERATED_KEYS);

其中pInsertOid是一个预准备语句。

然后你可以获得密钥:

代码语言:javascript
复制
// fill in the prepared statement and
pInsertOid.executeUpdate();
ResultSet rs = pInsertOid.getGeneratedKeys();
if (rs.next()) {
  int newId = rs.getInt(1);
  oid.setId(newId);
}

希望这能为您提供一个良好的起点。

票数 0
EN

Stack Overflow用户

发布于 2019-05-21 10:06:39

您是否尝试过Statement.executeUpdate()Statement.getGeneratedKeys()方法?有一篇developerWorks文章提到了这种方法。

此外,在JDBC 4.0中,Sun添加了row_id功能,该功能允许您在一行上获得唯一句柄。Oracle和DB2支持该功能。对于sql server,您可能需要第三方驱动程序,例如驱动程序。

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档