對不起,如果我的問題是微不足道的,但我是Java編程的新手。Java resultSet.updateRow()不更新數據庫
我有以下問題: 我使用NetBeans IDE創建了一個derby數據庫(我去了Services選項卡 - > JavaDB - > create database)。然後我創建了我的java項目並添加了對derbyclient.jar的引用。 使用這些參數:
String host = "jdbc:derby://localhost:1527/Employees";
String username = "jarek";
String pass = "aaa";
我設法創建JDBC連接,並能夠填充,與結果從Employees表數據。接下來,我想用這個結果集,所以我寫了更新數據庫:
rs.absolute(rowtoupdate);
rs.updateObject("FIRST_NAME", updatedvalue);
rs.updateRow();
,一切工作正常(數據在數據庫實際上是更新)。
現在我的問題。我希望這個數據庫被嵌入到我的應用程序中,所以我將它的文件複製到我的項目位置(我複製Employees文件夾以及derby.log和derby.properties)中的文件夾「DB」中。我將項目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();
變化不保存在數據庫中。
我在做什麼錯?我可以將數據庫文件複製到我的項目位置嗎?但是,然後resultSet運行後查詢包含來自數據庫正確的數據,所以它似乎工作...
你是否正在提交更改('connection.commit()')? – prunge
不,我不是:)非常感謝你的工作。但爲什麼它在我的第一個場景中起作用? (我沒有調用connection.commit) –