gpt4 book ai didi

database - 使用 jdbc 插入多个表

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:00 25 4
gpt4 key购买 nike

我正在尝试使用 JDBC 插入到多个表中。因为它必须要快,所以我想使用 PreparedStatementexecuteBatch 方法。表由外键关系组合。

  • 第一个想法是使用 getGeneratedKeys() 但这对一些 JDBC 驱动程序来说失败了。例如。 PostgreSQL。

  • 第二个想法是使用 SQL-currval(...)-函数。但是必须为一个语句调用 execute batch 而为另一个语句调用 execute batch 会使所有键的值相同。所以这个方法也失败了。

  • JDBC 不接受以分号分隔的插入。

我怎样才能做到这一点?

最佳答案

您似乎主要使用 PostgreSQL。最好知道自从 PostgreSQL JDBC 驱动程序版本 8.4-701 PreparedStatement#getGeneratedKeys()功能齐全。

你只需要准备如下语句就可以让它返回 key :

statement = connection.prepareStatement(SQL, Statement.RETURN_GENERATED_KEYS);

因此,如有必要,请升级您的驱动程序并修复您准备声明的方式。顺便说一下,这也适用于许多其他 JDBC 驱动程序。


一个完全不同的替代方案是完全放弃普通的 JDBC,向上一个抽象层并潜入“好的”Hibernate 或现代 JPA。他们在 Java 中提供了一种纯面向对象的数据库实体处理方法,无需摆弄生成的键等。这一切都是在幕后透明地处理的,它们支持非常广泛的数据库方言。

关于database - 使用 jdbc 插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com