【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的時候報上面的錯!

  上網查了下原因,是因為hibernate中使用了,commit()或者rollback(),這兩個都需要一個先決條件,就是mysql的自動提交功能要關閉。

  commit()的作用是:提交上一次提交或者回滾后的修改的內容,並釋放連接中的相關內容。

  rollback()的作用是:回滾到上一次提交或者回滾時的內容。

  上面兩個方法都只能在已禁用自動提交的模式中使用。

  因此,關閉mysql自動提交就可以了。

  在mysql客戶端中:

  mysql>select @@autocommit;

  查看是否開啟了自動提交,如果為1,表明開啟了。如果是0,表明關閉

  可以采用下面的方式,進行關閉。

  mysql>set autocommit=0;

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM