0

可能重复:
如何在 JDBC 中获取插入 ID?

我有以下表格:

customer(cid, ...)

book(cid, rid)

reservation(rid, ...)

我想在它的表中添加一个预订,然后我想在和book之间添加一个关系。customerreservation

我怎么知道rid它是自动生成的,当我执行查询时我确实得到了ResultSet返回?

rid是使用序列和触发器从 Oracle 自动生成的。

4

2 回答 2

3

请参阅您的问题,我相信您正在使用语句。在这种情况下,您可以使用Statement.RETURN_GENERATED_KEYS. 另请考虑此链接,因为以下解决方案可能对 Oracle 数据库有冲突。

这是一个小例子:

Connection connection = database.getConnection();
PreparedStatement statement = connection.prepareStatement(myQuery, Statement.RETURN_GENERATED_KEYS);
int count = statement.executeUpdate();
if(count <= 0){
 //value not inserted
}

ResultSet results = statement.getGeneratedKeys();

if(results.next){
 System.out.println(generatedKeys.getLong(1));
}

如果您使用 ORM:

如果您使用的是 JPA entitiyManager.merge(entity);(或更新),则应返回带有 ID 的持久实例。与休眠session.merge(entity);(或更新)非常相似

于 2012-11-26T01:03:09.197 回答
1

不知道 java/jsp 的情况如何,但如果它是关系数据库,则必须使用一组查询 - 即获取您知道的一个 id (cid),然后从 book 表中删除。我知道没有其他方法。

希望有帮助。

于 2012-11-26T00:40:13.000 回答