gpt4 book ai didi

Java resultSet.updateRow() 不更新数据库

转载 作者:行者123 更新时间:2023-11-30 09:27:54 25 4
gpt4 key购买 nike

抱歉,如果我的问题很简单,但我是 Java 编程的新手。

我有以下问题:我使用 NetBeans IDE 创建了一个 derby 数据库(我转到服务选项卡 -> JavaDB -> 创建数据库)。然后我创建了我的 java 项目并添加了对 derbyclient.jar 的引用。使用这些参数:

String host = "jdbc:derby://localhost:1527/Employees";
String username = "jarek";
String pass = "aaa";

我设法创建了 jdbc 连接,并能够使用表 Employees 中的数据填充 ResultSet。接下来我想使用这个结果集更新数据库,所以我写道:

rs.absolute(rowtoupdate);
rs.updateObject("FIRST_NAME", updatedvalue);
rs.updateRow();

一切正常(数据实际上已在数据库中更新)。

现在是我的问题。我希望将此数据库嵌入到我的应用程序中,因此我将其文件复制到项目位置的文件夹“DB”中(我复制了 Employees 文件夹以及 derby.log 和 derby.properties)。我将项目 jar 文件中的引用从 derbyclient.jar 更改为 derby.jar。之后我使用了不同的参数:

String host = "jdbc:derby:DB//Employees";
String username = "jarek";
String pass = "aaa";
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
Class.forName( driver );
connection = DriverManager.getConnection( url, username, password );

我再次能够用数据库中的数据填充结果集(所以一切似乎都有效)但是当我尝试执行完全相同的更新时:

rs.absolute(rowtoupdate);
rs.updateObject("FIRST_NAME", updatedvalue);
rs.updateRow();

更改不会保存在数据库中。

我做错了什么?会不会是我将数据库文件复制到我的项目位置造成的?但是在 Statement 上运行查询后结果集再次包含来自数据库的正确数据,因此它似乎可以工作......

最佳答案

调用 connection.commit() 解决了问题。

关于Java resultSet.updateRow() 不更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14288589/

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