[英]Execute Multiple DML on single java.sql.Statement
交易行為如何; 如果我使用以下語法使用單個java.sql.Statement
執行多個DML
String sqlStr = "INSERT INTO.... \n update t1 set....";
statemet.execute(sqlStr);
我沒有更改默認的連接設置(autocommit = true)。
我知道這不是正確的方法/最佳做法; 只是好奇地知道上述代碼的事務性質,即如果SQLException更新失敗,是否將插入回滾?
在autocommit
設置為true的情況下,單個語句很可能會在其自己的單個事務中執行。 這可能取決於數據庫,但我懷疑不是。
找出答案的最佳方法是嘗試一下。
我在MySQL環境中嘗試過。 效果很好。 我認為這是這樣做的基本方法。
嘗試使用MS SQL Sever 2008獲得了一些令人驚訝的結果
我嘗試了2條更新語句,根據觀察,它們在單個事務中運行; 也就是說,如果第二個更新失敗,則第一個更新語句將回滾。
我注意到的令人驚訝的是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.