更新可能なJDBC ResultSet作成時の注意

JDBC2.0より,更新可能なResultSetを用いたデータ操作(更新・挿入・削除)が可能になりました。以下のように,フラグResultSet.CONCUR_UPDATABLEを使用して生成したResultSetが更新可能になります。
Statement stmt = 
connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs =
stmt.executeQuery("SELECT ColA, ColB FROM myTable");

ところが上記のように作成したStatementを使用しても,条件によってはResultSetが更新不能(読み取り専用)となる場合があります。

例えばOracleの場合,
stmt.executeQuery("SELECT * FROM myTable")

のようなカラム指定を行うと,フラグ指定に関わらずResultSetは読み取り専用になります。

その他,使用するデータベースによって条件があるようですので,使用時には注意が必要です。


タグ:java JDBC
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
rank← ランキングはこちらをクリック!

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。