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的時候報上面的錯!
上網查了下原因,是因為hibernate中使用了,commit()或者rollback(),這兩個都需要一個先決條件,就是mysql的自動提交功能要關閉。
commit()的作用是:提交上一次提交或者回滾后的修改的內容,並釋放連接中的相關內容。
rollback()的作用是:回滾到上一次提交或者回滾時的內容。
上面兩個方法都只能在已禁用自動提交的模式中使用。
因此,關閉mysql自動提交就可以了。
在mysql客戶端中:
mysql>select @@autocommit;
查看是否開啟了自動提交,如果為1,表明開啟了。如果是0,表明關閉。
可以采用下面的方式,進行關閉。
mysql>set autocommit=0;