|
|
 |
連載
JDBC
結果セットの可視性 |
|
1.可視性とは
結果セットの可視性とはResultSetによって行われた編集の結果が、自分自身又は他の結果セットにどう反映されるかということです。
もう少し簡単に言うと、2人が同じデータベースのテーブルを参照、更新作業をしている場合、
他の一人がテーブルを更新した時に、自分の参照しているテーブルに更新内容を反映させるかどうかということです。
勿論、可視性を上げるほど参照に掛かるアクセス時間は増えて、遅くなることは確かです。変更内容の重要性に合わせて可視性を考えなくてはなりません。
前回、カーソルを順方向、逆方向に自由に動かすスクロールを説明しましたが、これらの設定もこの可視性の違いということになります。
ここでまとめてStatementオブジェクトを生成する createStatmentメソッドを説明します。但し、各JDBCドライバによって異なる様ですから注意して下さい。
構文1 Statement createStatement
(int resultSetType, int resultSetConcurrency)
resultSetType の定数
| 定数 | カーソル移動 |
自分自身が実行 | 他人が実行 |
| 挿入 | 更新 | 削除 |
挿入 | 更新 | 削除 |
| TYPE_FORWARD_ONLY | 順方向 スクロール不可 |
× | × | × |
× | × | × |
| TYPE_SCROLL_INSENSITIVE | 双方向 スクロール可 |
× | ○ | ○ |
× | ×注) | × |
| TYPE_SCROLL_SENSITIVE | 双方向 スクロール可 |
× | ○ | ○ |
× | ○ | × |
注)青色はデフォルト。○は反映を表し、×は反映しないを表す。
注)refreshRow メソッドを呼び出すことで反映される。
resultSetConcurrency の定数
| 定数 | 内 容 |
| CONCUR_READ_ONLY | 読み取り専用(更新不可) |
| CONCUR_UPDATABLE | 読み書き可能(更新可) |
|
|
|