照会結果のカーソル属性は、アノテーション付きメソッドおよびインライン・メソッドから実行する照会から設定できます。
これらの属性によって、スクロール可能または更新可能な照会結果を作成することができます。
以下の属性を設定できます。
- ResultSet オブジェクトの並行性モードを定義する属性
- java.sql.ResultSet.CONCUR_READ_ONLY
- 照会結果が開いている間、カーソルが更新をできなくすることを指定する整数定数。
- java.sql.ResultSet.CONCUR_UPDATABLE
- 照会結果が開いている間、カーソルが更新を許可することを指定する整数定数。
重要: pureQuery は、アノテーション付きメソッドによる位置指定更新および削除をサポートしています。ただし、インライン・メソッドについては、サポートしません。
- Connection.commit() メソッドの呼び出し時に ResultSet オブジェクトを閉じるかどうかを定義する属性
- java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT
- カーソルがトランザクションの最後に閉じられることを指定する整数定数。
- java.sql.ResultSet.HOLD_CURSORS_OVER_COMMIT
- カーソルがトランザクションの最後も開いたままであることを指定する整数定数。
- ResultSet オブジェクトのタイプを定義する属性
- java.sql.ResultSet.TYPE_FORWARD_ONLY
- カーソルが下方にのみ移動できることを指定する整数定数。
- java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE
- カーソルが下方および上方に移動できることを指定する整数定数。照会結果は、データのスナップショットを提供します。
- java.sql.ResultSet.TYPE_SCROLL_SENSITIVE
- カーソルが下方および上方に移動できることを指定する整数定数。照会結果は、カーソルが保持されている間にデータに行われた変更を反映します。
- この属性を DB2® Database for Linux, UNIX and Windows あるいは DB2 for z/OS® に対してバインドされる照会に使用する場合、カーソルは SENSITIVE STATIC SCROLL カーソルとしてバインドされます。このタイプのカーソルについて詳しくは、DB2 for z/OS Application Programming and SQL Guide を参照してください。
デフォルトで、明示的に属性を設定しない場合、pureQuery は以下の属性を使用します。
- java.sql.ResultSet.CONCUR_READ_ONLY
- java.sql.ResultSet.CLOSE_CURSORS_AT_COMMIT
- java.sql.ResultSet.TYPE_FORWARD_ONLY
アノテーション付きメソッドを使用してカーソル属性を設定する
照会結果に使用するカーソル属性を指定するには、@Cursor アノテーションを @Select アノテーションとともに使用します。
データベースに対して SQL ステートメントを実行するアノテーション付きメソッドについては、構文図を参照してください。
インライン・メソッドを使用してカーソル属性を設定する
Data インターフェースで以下のいずれかのメソッドを使用します。
- public <T> T query (int type, int concurrency, int holdability,
String sql, ResultHandler<T> handler, Object... parameters);
- public Iterator<Map<String, Object>> queryIterator
(int type, int concurrency, int holdability, String sql, Object...
parameters);
- public <T> Iterator<T> queryIterator
(int type, int
concurrency, int holdability, String sql, Class<T> returnClass,
Object... parameters);
- public <T> Iterator<T>
queryIterator (int type, int
concurrency, int holdability, String sql, RowHandler<T> rowHandler,
Object... parameters);
- public ResultSet queryResults (int
type, int concurrency, int
holdability, String sql, Object... parameters);
これらのメソッドについて詳しくは、pureQuery Javadoc で
Data インターフェースを参照してください。