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的自動送出功能要關閉。
修改的内容,并釋放連接配接中的相關内容。
rollback()的作用是:復原到上一次送出或者復原時的内容。
已禁用自動送出的模式中使用。
是以,關閉mysql自動送出就可以了。
在mysql用戶端中:
mysql>select @@autocommit;
檢視是否開啟了自動送出,如果為1,表明開啟了。如果是0,表明關閉。
可以采用下面的方式,進行關閉。
mysql>set autocommit=0;