java.sql.SQLException: Can't call commit when autocommit=true at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931) at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1646)
今天遇到這個問題,使用hibernate的時候報上面的錯!java
上網查了下緣由,是由於hibernate中使用了,commit()或者rollback(),這兩個都須要一個先決條件,就是mysql的自動提交功能要關閉。mysql
commit()的做用是:提交上一次提交或者回滾後的修改的內容,並釋放鏈接中的相關內容。sql
rollback()的做用是:回滾到上一次提交或者回滾時的內容。spa
上面兩個方法都只能在已禁用自動提交的模式中使用。hibernate
所以,關閉mysql自動提交就能夠了。code
在mysql客戶端中:blog
mysql>select @@autocommit;
查看是否開啓了自動提交,若是爲1,代表開啓了。若是是0,代表關閉。it
能夠採用下面的方式,進行關閉。io
mysql>set autocommit=0;