私の質問が些細なことなら申し訳ありませんが、私はJavaプログラミングに不慣れです。
次の問題があります。NetBeansIDEを使用してderbyデータベースを作成しました(「サービス」タブ->「JavaDB」->「データベースの作成」に移動しました)。次に、Javaプロジェクトを作成し、derbyclient.jarへの参照を追加しました。これらの引数の使用:
String host = "jdbc:derby://localhost:1527/Employees";
String username = "jarek";
String pass = "aaa";
なんとかjdbcConnectionを作成し、ResultSetにテーブルEmployeesからのデータを取り込むことができました。次に、この結果セットを使用してデータベースを更新したかったので、次のように記述しました。
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 );
ここでも、resultSetにデータベースからのデータを入力することができました(すべてが機能しているように見えます)が、まったく同じ更新を実行しようとすると、次のようになります。
rs.absolute(rowtoupdate);
rs.updateObject("FIRST_NAME", updatedvalue);
rs.updateRow();
変更はデータベースに保持されません。
私は何が間違っているのですか?データベースファイルをプロジェクトの場所にコピーしたことが原因でしょうか?しかし、Statementでクエリを実行した後のresultSetには、データベースからの適切なデータが含まれているため、機能しているようです...