如何返回java中最后添加的项的最后一个主键?

时间:2009-05-28 10:43:32

标签: java database methods primary-key return

有一个具有双主键的链接(或ref)表。需要返回从所选表中的当前连接自动生成的最后一个主键。这是在java中。 如果这会产生影响,则数据库位于MS Access中。 对于匆忙的描述感到抱歉,但我们的团队正在紧张地安排工作。

欢迎任何链接或建议。

编辑:

使用SQL填充数据库。我们输入一个表格的数据,但我们不知道自动生成的数字。需要找出这是什么,所以它可以输入到ref表中。我们只知道复合键的一半,这就是我们需要第二个键的原因。

编辑:

到目前为止最好的答案(似乎无法评论)。 我收到以下错误... “线程中的异常”AWT-EventQueue-0“java.lang.UnsupportedOperationException”

任何建议?

3 个答案:

答案 0 :(得分:2)

Statement.getGeneratedKeys()可以做到这一点......

答案 1 :(得分:2)

你需要做两件事。首先,在准备语句或执行语句时,您必须传入一个额外的参数。如果您使用预准备语句,请执行以下操作:

stmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

如果您没有使用预准备语句,请在调用executeUpdate()时执行以下操作:

stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);

执行完陈述后,您可以致电

ResultSet rs = stmt.getGeneratedKeys()

这将为您提供包含生成的任何键的结果集。

我没有尝试使用Access的这种方法,但它适用于SQL Server标识列。

答案 2 :(得分:0)

将复合键的两个值放入具有两个元素的Object数组中并返回该值。

或者,将新的复合键放在刚保存的实例中并返回。