天天看點

Can't call commit when autocommit=true(轉)

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;