首页 > 代码库 > Can't call commit when autocommit=true(转)
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;
http://www.cnblogs.com/xing901022/p/4183180.html
Can't call commit when autocommit=true(转)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。