【Mysql】—— 報錯: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的時候報上面的錯!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;
相關文章
相關標籤/搜索