gpt4 book ai didi

java - 我正在尝试执行 jdbc 事务。但是一旦我运行代码,数据库就不会更新

转载 作者:行者123 更新时间:2023-11-29 04:00:04 25 4
gpt4 key购买 nike

我在 Eclipse 中使用了以下代码。一旦我运行代码,数据库就不会更新。它仍然显示相同的值。我什至在数据库中运行了运行良好的 sql 查询,但是一旦我运行我的 java 代码什么都没有更新..

    import java.io.*;
import java.sql.*;
import java.util.Properties;
public class ExpTran {

public static void main(String[] args) {
Connection con = null;
try {
FileInputStream io = new FileInputStream("config/db.properties");
Properties p = new Properties();
p.load(io);
Class.forName(p.getProperty("driver"));
con = DriverManager.getConnection(p.getProperty("url"),p);
Statement stmt = con.createStatement();
con.setAutoCommit(false);
int i = stmt.executeUpdate("update tutorials.account set amount=amount-500 where acc_no='A002'");
i += stmt.executeUpdate("update tutorials.account set amount=amount+500 where acc_no='A003'");
if(i!=2)
{
System.out.println("Exception");
throw new SQLException();
}
System.out.println(i);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
if(con!=null){
try {
con.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
finally {
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

最佳答案

尝试替换这个:

   con.setAutoCommit(false);

在这里:

  System.out.println(i);
con.commit();

或者设置为true:

  con.setAutoCommit(true);

关于java - 我正在尝试执行 jdbc 事务。但是一旦我运行代码,数据库就不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com