我在我的表中有一个主键自动增量属性。我想知道为使用statement.executeUpdate()插入的行分配的值。如何以最佳方式实现这一目标?SQL java获取值分配给自动增量主键
回答
使用Statement#getGeneratedKeys()
和Statement#executeUpdate(String, int)
(这是一个JDBC 3.0功能,您的数据库必须支持JDBC 3.0)。
下面是与返回在TABLE1自动生成的列值的ResultSet
一个例子:
Statement stmt = conn.createStatement();
int rows = stmt.executeUpdate("INSERT INTO TABLE1 (C11, C12) VALUES (1,1)", Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
我收到一个错误,说当我调用rs.getInt(“id”); 可能是什么原因? – 2010-05-18 04:56:43
与某事有关。 http://bugs.mysql.com/bug.php?id=18409 但即使这并没有解决问题 – 2010-05-18 05:17:42
我的列有一个int(11)的数据类型。我正在使用mysql – 2010-05-18 05:22:41
- 1. 从mysql自动增量主键分配外键
- 2. SQL主键增量
- 3. 如何重新分配自动增加主键值?
- 4. 带有组合主键自动增量一部分的SQL 2008复合主键
- 5. Hibernate/JPA SQLServer主键自动增量
- 6. MySQL的自动增量主键造成价值数错配和外键错误
- 7. SQL Server:主键自动增量 - 删除的行和空闲键值是什么?
- 8. 如何创建自动增量主键?
- 9. JPA自动增量非主键列
- 10. 两个主键&自动增量
- 11. SQLite:双主键和自动增量
- 12. 整数主键不自动增量
- 13. 更改主键和自动增量
- 14. MySQL-Update插入自动增量主键到自定义值
- 15. SQL主键自动增量VS时间戳
- 16. SQL - 主键,聚簇索引,自动增量
- 17. 如何在CL-SQL中使用自动增量主键?
- 18. SQL Server中自动增量主键的上限
- 19. SQL插入多个条目非自动增量主键
- 20. SQL Server 2012主键自动增量跳过10.000
- 21. SQL Server数据库中的主键自动增量
- 22. 如何调用自动递增的MySQL的主键Java变量
- 23. 具有自动增量部分的复合主键
- 24. mySQL复合主键与自动增量的一部分
- 25. 键列自动增量
- 26. Java自动增量
- 27. Python - 没有自动增量主键值的Sqlite插入元组
- 28. 如何指定主键列的自动增量值?
- 29. 自动增量分配的ID
- 30. MySql InnoDb自动增量预取值
为了什么数据库?你可以使用Oracle/DB2的RETURNING子句(也可能使用Postgres)。 MySQL的LAST_INSERT_ID; SQL Server的@SCOPE_IDENTITY ... – 2010-05-17 21:50:54
@OMGPonies:JDBC抽象数据库实现这一点的方式(当数据库支持时)。 – 2010-05-17 21:57:42