gpt4 book ai didi

java - 在一个事务中执行两个不同的查询

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:05:58 25 4
gpt4 key购买 nike

我试图在一个语句中执行两个插入查询,将它们放在一个事务中。

我正在查看 addBatch 方法,但如果我理解正确,它可以与单个 PreparedStatement 一起使用,以使用不同的参数多次执行相同的插入,或者用于 Statement 对象以向批处理添加更多查询,但无法添加参数(因此我可以在 sql 字符串中添加值。SQL 注入(inject)样式)。

我还尝试了一种天真的方法,即在一个 sql 语句中编写两个插入(insert into table1 values(?, ?); insert into table2 values(?, ?);),但是这样PreparedStatement 只看到前两个参数,尝试设置第 3 个和第 4 个参数会引发异常。

最佳答案

您可以禁用自动提交,执行两个单独的语句,然后手动提交一个事务:

connection.setAutoCommit(false);
try {
...
stmt1.execute();
...
stmt2.execute();
connection.commit();
} catch (Exception ex) {
connection.rollback();
}

关于java - 在一个事务中执行两个不同的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860634/

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