gpt4 book ai didi

java - Java 中的 ExecuteUpdate sql 语句不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:54 24 4
gpt4 key购买 nike

我正在学习如何将 SQL 与 Java 结合使用。我已成功安装 JDBC 驱动程序,并且能够从数据库中读取记录并将其打印在屏幕上。

我的问题发生在尝试执行更新或插入语句时,但没有任何反应。这是我的代码:

问题所在的方法

public static void updateSchools(ArrayList<String> newSchool)
{
try
{
openDatabase();
stmt = c.createStatement();
int numberOfRows = stmt.executeUpdate("UPDATE schools SET address='abc' WHERE abbreviation='2';");
System.out.println(numberOfRows);
closeDatabase();
}
catch (Exception e)
{
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
}

支持函数

public static void openDatabase()
{
c = null;
stmt = null;
try
{
Class.forName("org.postgresql.Driver");
c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Badminton", "postgres", "postgrespass");
c.setAutoCommit(false);
}
catch (Exception e)
{
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
System.out.println("Database opened successfully");
}

public static void closeDatabase()
{
try
{
stmt.close();
c.close();
}
catch (Exception e)
{
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
System.out.println("Database closed successfully");
}

这是我非常简单的数据库的图像: enter image description here

控制台中的结果如下,尽管没有对数据库进行任何更改:

数据库打开成功

1

数据库关闭成功

提前致谢!

最佳答案

openDatabase 方法中删除 c.setAutoCommit(false) 行。

或者

updateSchool 方法的末尾添加c.commit()

After the auto-commit mode is disabled, no SQL statements are committed until you call the method commit explicitly. All statements executed after the previous call to the method commit are included in the current transaction and committed together as a unit.

关于java - Java 中的 ExecuteUpdate sql 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289951/

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