zoukankan      html  css  js  c++  java
  • mysql java.sql.SQLException: 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;
  • 相关阅读:
    node-red 使用 创建第一个流程
    node-red 安装
    docker postgres 导出导入数据
    6大设计模式(转)
    常见的算法
    @Autowired与@Resource的区别
    Elasticsearch
    redis搭建主从复用-读写分离
    转载redis持久化的几种方式
    后台启动mysql
  • 原文地址:https://www.cnblogs.com/lshan/p/9287829.html
Copyright © 2011-2022 走看看