【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;
相关文章
相关标签/搜索