JDBCの基礎知識

JDBCの主な機能について教えてください

テンアートニ 中越智哉
2001/5/29

 JDBCの基本的な機能は、Javaからデータベースに接続してSQLステートメントを実行することです。実行できるSQLステートメントは、以下の3類に分けることができ、それぞれに専用のインターフェイスが定義されています。

(1)通常のSQL
 java.sql.Statementインターフェイスで定義され、executeQueryもしくはexecuteUpdateメソッドでSQLを実行することができます。

(2)プリコンパイルされたSQL
 java.sql.PreparedStatementインターフェイスで定義され、SQL文にはパラメータを設定しておくことができます。 setXXX(XXXは型によって変わる)メソッドによってパラメータに値を設定し、executeQueryもしくはexecuteUpdateメソッドで、プリコンパイル済みのSQL にパラメータを設定したものを実行することができます。

(3)ストアドプロシージャ
 java.sql.CallableStatementインターフェイスで定義され、prepareCallメソッドで呼び出すプロシージャを指定し、INパラメータ、OUTパラメータを、それぞれ、setXXX、getXXX(XXXは型によって変わる) メソッドで設定したり取り出したりすることができます。executeQueryもしくはexecuteUpdateメソッドで、実行することができます。

 参照系SQL の場合、結果セットを取得することができ、それを操作するためのインターフェイス(java.sql.ResultSet)も定義されています。

 ResultSetは、行ごとに操作を行うようなインターフェイスになっており、基本的には、 現在参照している行を示すカーソルを操作して行を移動し、データ取得用のメソッドによ って、列ごとのデータを取り出すという操作を行うことになります。

■JDBC 2.0の機能
 JDBCの現在のバージョンは2.xですが、このバージョンからは、結果セットに対して、1.xにはなかった以下のような機能も追加されています。

●スクロール機能の強化
 
JDBC1.xでは、結果セットのカーソル移動は、順方向に1行ずつしか移動できませんでした。 JDBC2.xからは、スクロール機能が強化され、順方向、逆方向への相対位置への移動や、絶対位置へのカーソル移動などがサポートされました。

●更新可能な結果セットの提供
 JDBC1.xでは、結果セットは参照のみが可能でしたが、JDBC2.xからは、更新可能な結果セットが追加され、データベースの更新を動的に反映したり、結果セットの更新をデータベースに反映させたりすることが可能になりました。

 また、更新系ステートメントの実行に関しては、JDBC 2.0からバッチ実行がサポートされており、複数の更新SQLを一度にデータベースに送って処理することも可能になっています。

 そのほか、以下のような機能もありますが、これらは、JDBC2.xでは、標準拡張パッケージになっており、JDKなどには含まれていません。次のリリースであるJDBC 3.0では、 これらの機能も標準になるようです。

●行セット
 データベースの接続の有無に関係なく、結果セットを保持しておくことができます。

●JNDI
 データベース接続の取得に、JDBC URLではなく、JNDIによるデータソースの論理名で接続を取得することができます。これによって、特定のURLやドライバに依存するコーディングを避けることができるようになります。

●接続プーリング
 データベース接続をプールしておくことによって、パフォーマンスの向上を図ることができます(「接続のプーリングについて教えてください」を参照)。

●分散トランザクション
 JTS(Java Transaction Service)でサポートされる2フェーズコミットなどの機能を提供します。

「Java Solution FAQ」





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間