当前位置: 首页 > 知识库问答 >
问题:

如何修复“java.sql.sqlexception:AutoCommit=True时不能调用commit”

尹昀
2023-03-14

我正在研究Java和mysql,但我无法修复错误。当我将新农场主插入到表中时,我正面临着这些错误...

java.sql.sqlexception:AutoCommit=true时无法调用commit

错误如下

java.sql.sqlexception:AutoCommit=true时无法调用commit

在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:869)
在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:865)
在com.mysql.jdbc.connectionimpl.commit(connectionimpl.java:1537)
在client.main.addonething(main.java:784)在client.main.parse_commands(main.java:123)在ysql.jdbc.sqlerror.createsqlexception(sqlerror.createsqlexception(sqlerror.java:898)在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:887)在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:881)在com.mysql.jdbc.connectionimpl.rollback(connectionimpl.java:4560)在

这是数据库连接代码

 public static void addonething(String query, DBConnection dbConnection){
        Statement myStmt;
        try {
            myStmt =  dbConnection.getConn().createStatement();
            int swichA = 0;
            int swichB = 0;
            myStmt.execute(query);

    System.out.println("To commit the data enter 1");
    Scanner in = new Scanner(System.in);
    swichB = in.nextInt();
    if(swichA != -1 && swichB == 1){
        System.out.println();
        dbConnection.getConn().commit();
    }
    else{
        System.out.println("it came hear3");
        dbConnection.getConn().rollback();
    }

} catch (SQLException e) {
    System.out.println("it came hear4");
    e.printStackTrace();
    try {
        dbConnection.getConn().rollback();
    } catch (SQLException e1) {
        System.out.println("it came hear5");
        e1.printStackTrace();
    }
}}

下面是insert方法

public static String frQuery(String second_part){
    String data = get_data_from_commands(second_part);
    String[] tokens = data.split(",");
    String queryf = String.format("insert into farmers" + " 
            (Name, lastname, Address, zipcode, city, phones, mails)" + "values 
      ('%s','%s','%s','%s','%s','%s','%s')",tokens[0],tokens[1],tokens[2], 
       tokens[3],tokens[4],tokens[5], tokens[6]);

    return queryf;
}

共有1个答案

徐昆
2023-03-14

您可以使用以下代码禁用自动提交:

 //Note : This will implicitly commit the active transaction and create a new one
 connection.setAutoCommit(false);

现在,这组语句(事务)将在以下时间提交:

connection.commit();
 类似资料:
  • 我正在使用java和mysql,但我无法修复错误。当我将new Farm插入表时,我正面临这些错误...... Java语言sql。SQLException:当autocommit=true时无法调用commit 错误如下 Java语言sql。SQLException:当autocommit=true时无法调用commit _commandsSQLE_loopSQLException(SQLEpa

  • 环境: Python 3.7 Windows 10 64位 问题: 下面这段代码过去工作没有问题。我不得不移动我的Py魅力项目的文件夹,现在我得到了这个错误消息:“TypeError:'str'对象不可调用”。 守则: 错误输出: 我尝试的是: 我在一个空白的python文档中隔离了这段代码。我想确保这个问题没有连接到其他地方的代码。当我执行这段独立的代码时,我得到了同样的问题。 我在这里看到了关

  • 这是我的logcat com.contoh.jalikk.tumbal.search.adapter.NotifyDataSetChanged()'在com.contoh.jalikk.tumbal.semuadata$1的空对象引用上。onresponse(semuadata.java:178)在com.contoh.jalikk.tumbal.semuadata$1的onresponse(se

  • 我在Sonarqube上发现了这个bug: 我在网上找了很长时间,但没有用。请帮助或尝试给出一些想法如何实现这一点。

  • 无法使字段private final java.lang.String java.io.file.path可访问:module java.base不会“打开java.io”到未命名的module@6109445c 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得完整的见解。 null 有人能帮我吗!!