【Mysql】―― 报错:Can't call commit when autocommit=true

匿名 (未验证) 提交于 2019-12-02 22:02:20
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;

  

转载于:https://my.oschina.net/u/204616/blog/545417

文章来源: https://blog.csdn.net/weixin_33924220/article/details/91990081
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!