show variables like '%autocommit%';--查看是否自動提交
set autocommit on;
mysql在進行如插入(insert)操作的時候需不需要commit,看存儲引擎,
如果是不支持事務的引擎,如myisam,則是否commit都沒有效的。
如果是支持事務的引擎,如innodb,則得知道你事物支持是否自動提交事務(即commit)
mysql存儲過程中最后有commit和沒有commit 是有所不同的。(為測試但是碰到過這個問題)
如果存儲過程中沒有執行commit,那么spring容器一旦發生了事務回滾,存儲過程執行的操作也會回滾。如果存儲過程執行了commit,那么數據庫自身的事務此時已提交,這時即使在spring容器中托管了事務,並且由於其他原因導致service代碼中產生異常而自動回滾,但此存儲過程是不會回滾,因為數據自身的事務已在存儲過程執行完畢前提交了, 也就是說此時spring回滾對存儲過程的操作是無效的了。