首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中SQL插入后自动增量标识字段的访问

Java中SQL插入后自动增量标识字段的访问
EN

Stack Overflow用户
提问于 2008-09-16 19:55:17
回答 5查看 24.5K关注 0票数 17

关于如何通过java.sql.Statement.executeUpdate从call读取分配给新创建记录的自动递增标识字段的建议

我知道如何在几个数据库平台上用SQL语言来做这件事,但我想知道java.sql中有哪些独立于数据库的接口来做这件事,以及关于人们在跨数据库平台上的经验的任何意见。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-09-16 20:04:51

下面的代码片段应该可以做到这一点:

代码语言:javascript
复制
PreparedStatement stmt = conn.prepareStatement(sql, 
                                 Statement.RETURN_GENERATED_KEYS);
// ...

ResultSet res = stmt.getGeneratedKeys();
while (res.next())
    System.out.println("Generated key: " + res.getInt(1));

已知这适用于以下数据库

  • Derby
  • MySQL
  • SQL服务器

对于不起作用的数据库(HSQLDB、Oracle、PostgreSQL等),您需要使用特定于数据库的技巧。例如,在PostgreSQL上,您将针对相关序列调用SELECT NEXTVAL(...)

请注意,executeUpdate(...)的参数是类似的。

票数 24
EN

Stack Overflow用户

发布于 2008-09-16 20:08:40

代码语言:javascript
复制
ResultSet keys = statement.getGeneratedKeys();

稍后,只需迭代ResultSet即可。

票数 3
EN

Stack Overflow用户

发布于 2008-09-16 19:59:28

我总是在insert之后使用query进行第二次调用。

你可以使用像hibernate这样的ORM。我认为它为你做了这些事情。

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

https://stackoverflow.com/questions/76254

复制
相关文章

相似问题

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