【发布时间】:2021-12-26 05:33:42
【问题描述】:
我有一个用例,我需要批量处理一些查询( stmt.addBatch() )并且一些查询需要在创建后立即执行(stmt.executeQuery() ),因为它们的结果将是在进行批处理的查询中使用。数据库(显然)对两者都是通用的。我的问题是我可以为上述用例保持两个打开的连接吗?考虑到一致性和可行性,这是一个好主意吗?
编辑:如果有问题的查询要作用于不同的记录,是否可以保持 2 个同时活动的连接对象处于活动状态以处理每个场景?
附: - 我对后端和数据库比较陌生,请您提供一些解释/进一步阅读指针。
【问题讨论】:
-
不,数据库如何跟踪更新的数据,它会锁定一个行或表,然后当锁被释放时第二个可以完成它的任务
-
如果您担心一致性,我会研究 JDBC Transactions。
-
@nbk 我明白了。顺便说一句,是否可以同时拥有两个活动连接对象,一个用于批处理,另一个用于立即执行?假设查询不会处理相同的记录。
标签: java mysql jdbc batch-processing