0

我已经在互联网上搜寻了一个准确的答案,但没有取得多大成功。这是我的场景。

在 JDBC 领域中,标准做法是在一条语句中添加多个“插入”或多个“更新”并作为批处理执行。这些是同质查询,对它们进行批处理非常有意义。伟大的!

现在让我们考虑这种情况。一笔交易由一个“插入”和随后的其他“插入”组成,被认为是成功的。一个例子是你有一个对象 Parent_A,它有一个子列表 [Child_M, Child_N, Child_O,...]。保存 Parent_A 要求您也成功保存子项。

另一个稍微不同的例子是,您有一个用户 U 和一个子帐户 A。用户 U 可以在没有帐户 A 的情况下存在。但是在插入一个新帐户 A 时,即对于用户 U,您还需要更新用户 U帐户信息(这将是一笔交易)。

鉴于上述两种情况,是否有可能:1)给定父母列表,您能否在一个事务下批量处理所有查询?2)给定一个用户列表,你能否在一个事务中批量执行插入和更新每个用户的帐户?

我希望这不是那么冗长!!

4

1 回答 1

0

您可以通过在 Statement 上使用addBatch(String)方法来做到这一点。

但是,由于这需要您自己实际构建整个 sql 字符串(不使用 PreparedStatements/绑定变量),因此可能更容易为每个表(即父级、子级)执行 1 次批处理,并且只有在全部成功时才提交.

于 2013-05-08T13:05:39.203 回答