スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
JDBC2.0基本規格では,結果セット(ResultSetクラス)の拡張機能として「スクロール」と「並行処理」が追加されました。
結果セットのスクロールタイプには,次の3種類があります。
JDBC1.0からの標準のスクロールタイプです。結果セット内を順方向(上から下)にだけスクロールできます。
JDBC2.0で追加されたスクロールタイプです。結果セット内を順方向又は逆方向にスクロールできます。また,現在の位置からの相対位置指定の移動,又は絶対位置への移動もできます。
「非反映型」とは,結果セットが開かれている間に加えられた変更が,その結果セットに反映されないということを意味します。つまり,基盤となるデータの静的なビューを提供するだけで,結果セットに含まれる行,その順序,及び列の値は,結果セットの作成時に固定されます。
JDBC2.0で追加されたスクロールタイプです。結果セットが開かれている間に加えられた変更が,その結果セットに反映されます。
「変更の反映」という点では,「その結果セット自身による変更の反映」,「同一トランザクション内でのほかの結果セットによる変更の反映」,「他トランザクションによる変更の反映」などがあります。どこまで保証されるかは,ドライバの実装レベル,及びDBMSのトランザクション遮断レベルに依存します。
結果セットの並行処理タイプには,次の2種類があります。
JDBC1.0からの標準の並行処理タイプです。結果セットからの更新はできません。
JDBC2.0で追加された並行処理タイプです。結果セットからの更新(UPDATE,INSERT,及びDELETE)ができます。
スクロールタイプと並行処理タイプを組み合わせると,結果セットタイプは6種類になります。結果セットタイプは,ConnectionクラスのcreateStatementメソッド,prepareStatementメソッド,又はprepareCallメソッドでStatementクラス(又はそのサブクラス)のインスタンスを取得する場合に指定します。
結果セットタイプとJDBCドライバでの提供可否を次の表に示します。
表17-5 結果セットタイプとJDBCドライバでの提供可否
結果セットタイプ | JDBCドライバでの提供可否 | |
---|---|---|
スクロールタイプ | 並行処理タイプ | |
順方向専用型 | 読み取り専用型 | ○ |
更新可能型 | × | |
スクロール非反映型 | 読み取り専用型 | ○ |
更新可能型 | × | |
スクロール反映型 | 読み取り専用型 | × |
更新可能型 | × |
スクロール型結果セットでは,すべての検索データをJDBCドライバ内でキャッシングします。そのため,データ量が多い場合は,メモリ不足や性能劣化となる可能性が高くなります。したがって,スクロール型結果セットを使用する場合は,「SQLに条件を付加する」など,検索データ量をあらかじめ抑制しておく必要があります。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.