ResultSetを更新しようとすると、問題が発生します。JDBCを介してデータベースにクエリを実行し、CONCUR_UPDATABLEではない結果セットを取得しています。指定された列で「_」を「」に置き換える必要があります。どうすればそれができますか?
String value = derivedResult.getString(column).replace("_", " ");
derivedResult.updateString(column, value);
derivedResult.updateRow();
これは更新可能で正常に機能しますが、ResultSet.CONCUR_READ_ONLYの場合はどうなりますか?
編集:
これは、別のJDBCドライバーを呼び出すJDBCドライバーになります。私の問題は、転送専用または読み取り専用であっても、ResultSetのコンテンツを置き換える必要があることです。scroll_insensitiveとupdatableを設定した場合、問題はありませんが、転送のみの結果セットで動作するJDBCドライバーがあります。
ソリューション:
- 結果をインメモリデータベースに移動し、そこでコンテンツを置き換えようとする必要があります。
- 他のすべてのクラスと同じように機能する結果セットを実装する必要があります。必要に応じて、基になるドライバー関数を変更して呼び出します。
後で結果を使用して更新や挿入を行いたくありません。基本的に、これは一部のクエリで実行されます。