微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jdbc批处理插入和查询与带已发芽键的单插入

如何解决jdbc批处理插入和查询与带已发芽键的单插入

|| 我想在自动生成键的表中插入很多行。 JDBC不保证获取生成的密钥可以批量更新。
It is implementation-defined as to whether getGeneratedKeys will return
generated values after invoking the executeBatch method.
(JDBC 4.0规范2006,第135页)。 我有两个选择。分别插入每一行并获取密钥。或者批量插入然后查询密钥。 为了避免往返查询多个键,我可以在这里使用这种方法。有例如5个准备好的不同大小的语句。然后将我的“批量查询”分解为最小的语句。 什么是更快的方法?     

解决方法

        这取决于。 我没有数字
executeBatch()
是否实际上比重复使用
PreparedStatement
快,所以我的建议是: 尝试ѭ3是否适用于您的JDBC驱动程序。如果它不起作用,则批处理插入将仍然对您不起作用。 为这两者编写一个测试用例并评估性能。这将为您提供真实的数据,以供您做出决策。其他所有事情都是猜测(错误的情况是90%)。 [EDIT]如果您想使应用程序数据库不可知,请将测试添加到您的应用程序中,然后在临时表/测试表上运行它。如果测试成功,请选择一个使用批处理更新的实现,否则请使用蛮力。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。