当前位置:  开发笔记 > 编程语言 > 正文

插入行jdbc的主键?

如何解决《插入行jdbc的主键?》经验,为你挑选了2个好方法。

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

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

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



1> extraneon..:

复制自我的代码:

pInsertOid = connection.prepareStatement(INSERT_OID_SQL, Statement.RETURN_GENERATED_KEYS);

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

然后你可以获得密钥:

// fill in the prepared statement and
pInsertOid.executeUpdate();
ResultSet rs = pInsertOid.getGeneratedKeys();
if (rs.next()) {
  int newId = rs.getInt(1);
  oid.setId(newId);
}

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



2> atripathi..:

extraneon的答案虽然正确,但对甲骨文不起作用.

您为Oracle执行此操作的方式是:

String key[] = {"ID"}; //put the name of the primary key column

ps = con.prepareStatement(insertQuery, key);
ps.executeUpdate();

rs = ps.getGeneratedKeys();
if (rs.next()) {
    generatedKey = rs.getLong(1);
}

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有