1

有一个具有双主键的链接(或参考)表。需要返回从选定表中的当前连接自动生成的最后一个主键。这是在java中。如果这有所作为,则该数据库位于 MS Access 中。很抱歉描述得太仓促了,但我们的团队正在紧锣密鼓地工作。

任何链接或建议将不胜感激。

编辑:

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

编辑:

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

有什么建议吗?

4

3 回答 3

2

Statement.getGeneratedKeys() 应该可以解决问题...

于 2009-05-28T11:06:36.557 回答
2

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

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

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

stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);

执行语句后,您可以调用

ResultSet rs = stmt.getGeneratedKeys()

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

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

于 2009-05-28T11:23:30.393 回答
0

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

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

于 2009-05-28T10:46:02.463 回答