交易的行为方式;如果我使用以下语法使用单java.sql.Statement
String sqlStr = "INSERT INTO.... \n update t1 set....";
statemet.execute(sqlStr);
我没有改变默认连接设置(autocommit = true)。
我知道这不是正确的方法/最佳实践;只是想知道上面代码的交易性质 也就是说如果使用SQLException更新失败,会插入回滚吗?
答案 0 :(得分:1)
如果autocommit
设置为true,那么单个语句很可能会在各自的事务中执行。这可能取决于数据库,但我怀疑不是。
最好的方法是尝试一下。
答案 1 :(得分:0)
尝试用MS SQL sever 2008获得了一些令人惊讶的结果
我尝试了2个更新语句,根据观察,它们在单个事务中运行;即如果第二次更新失败,则首先回滚更新语句。
我注意到的令人惊讶的事情是:
答案 2 :(得分:0)
我在MySQL环境中尝试过。它工作得很好。我认为这是这样做的基本方法。