JavaTM 2
Platform
Std. Ed. v1.4.0

パッケージ javax.sql

サーバ側のデータソースアクセスについて、JavaTM プログラミング言語から処理する API を提供します。

参照:
          説明

インタフェースの概要
ConnectionEventListener PooledConnection オブジェクトによって生成されたイベントが通知されるよう登録するオブジェクトです。
ConnectionPoolDataSource PooledConnection オブジェクトのファクトリです。
DataSource この DataSource オブジェクトが表す物理データソースへの接続に対するファクトリです。
PooledConnection 接続プール管理のフックを提供するオブジェクトです。
RowSet JavaBeansTM コンポーネントモデルの JDBC API でサポートされるようになったインタフェースです。
RowSetInternal RowSet オブジェクトが自身を RowSetReader オブジェクトや RowSetWriter オブジェクトに渡すために実装するインタフェースです。
RowSetListener RowSet オブジェクトの有効期間中に重要なイベントが発生したときに通知を希望するコンポーネントによって実装されているインタフェースです。
RowSetMetaData RowSet オブジェクトの列に関する情報を格納するオブジェクトです。
RowSetReader 切断された RowSet オブジェクトが、列データ付きで自分自身を生成するために呼び出す機能です。
RowSetWriter RowSetWriter インタフェースを実装するオブジェクトで、「ライター」と呼ばれます。
XAConnection 分散トランザクションをサポートするオブジェクトです。
XADataSource 内部で使用される XAConnection オブジェクトのファクトリです。
 

クラスの概要
ConnectionEvent 接続関連のイベントのソースに関する情報を提供する Event オブジェクトです。
RowSetEvent RowSet オブジェクトにイベントが発生したときに生成される Event オブジェクトです。
 

パッケージ javax.sql の説明

サーバ側のデータソースアクセスについて、JavaTM プログラミング言語から処理する API を提供します。このパッケージでは java.sql パッケージを補足し、バージョン 1.4 リリースでは JavaTM 2 SDK の Standard Edition に含まれています。また、依然として Java 2 SDK, Enterprise Edition (J2EETM) の必須部分です。

java.sql パッケージは、次の用途の API を提供します。

  1. データソースとの接続を確立するための、DriverManager の代替となる DataSource インタフェース
  2. 接続プール
  3. 分散トランザクション
  4. 行セット

アプリケーションでは DataSource API と RowSet API を直接使用しますが、接続プール API と分散トランザクション API は中間層インフラストラクチャによって内部的に使用されます。

DataSource オブジェクトを使用した接続の作成

javax.sql パッケージでは、データソースとの接続を作成するための好ましい方法を提供しています。元の機構である DriverManager クラスも有効なままであり、DriverManager クラスを使用したコードも依然として実行できます。ただし、DriverManager 機構よりも多くの利点があるため、新しい DataSource 機構の使用が推奨されています。

接続を確立する際に、DataSource を使用する主な利点を挙げます。

ドライバベンダーは DataSource の実装を提供します。DataSource オブジェクトの中には特定の物理データソースを表すものがあり、そのような DataSource オブジェクトが作成した接続は、その物理データソースへの接続となります。

データソースの論理名は、通常システム管理者やシステム管理者作業を行うユーザによって、Java Naming and Directory InterfaceTM (JNDI) API を使用するネームサービスで登録されます。登録された論理名をルックアップすることで、アプリケーションでは必要な DataSource オブジェクトを取得できます。そして、取得した DataSource オブジェクトを使用して、この DataSource オブジェクトが表す物理データソースへの接続を作成します。

DataSource オブジェクトが作成した接続を再利用するためにプールできるよう、DataSource オブジェクトは中間層インフラストラクチャで動作するように実装されています。そのような DataSource 実装を使用するアプリケーションでは、接続プールにある接続を自動的に取得します。また、DataSource オブジェクトが作成した接続が特別なコーディングをしなくても分散トランザクションで使用できるようにするためにも、DataSource オブジェクトが中間層インフラストラクチャで動作するように実装されています。

接続プール

中間層接続プール管理プログラムで動作するように実装された DataSource オブジェクトによって作成された接続は、接続プールに属します。新しい接続の作成は非常に負荷が大きい作業であるため、これによりパフォーマンスが飛躍的に向上します。接続プールでは、接続の利用および再利用が可能です。そのため、作成する必要のある新規接続の数は実質的に削減されます。

接続プールは完全に透過的です。J2EE 構成の中間層で自動的に行われ、アプリケーションの観点からは、コードを変更する必要はありません。アプリケーションでは単に DataSource.getConnection メソッドを使用してプールされた接続を取得し、Connection オブジェクトを使用するのと同じ方法で使用します。

接続プールに使用されるクラスとインタフェースは次のとおりです。

接続プール管理プログラムは 3 層アーキテクチャの中間層で機能し、これらのクラスやインタフェースを背後で使用します。PooledConnection オブジェクトを作成するために ConnectionPoolDataSource が呼び出されると、接続プール管理プログラムによって新しい PooledConnection オブジェクトが ConnectionEventListener オブジェクトとして登録されます。接続が閉じられるかエラーが発生すると、接続プール管理プログラム (リスナー) が ConnectionEvent オブジェクトを含む通知を受け取ります。

分散トランザクション

プールされた接続と同様に、中間層インフラストラクチャで動作するように実装された DataSource オブジェクトで作成された接続は、分散トランザクションにも参加します。これにより、アプリケーションでは単一トランザクションで複数サーバ上のデータソースにアクセスできるようになります。

分散トランザクションに使用されるクラスとインタフェースは次のとおりです。

これらのインタフェースはトランザクションマネージャによって使用され、アプリケーションが直接使用することはありません。

XAConnection インタフェースは PooledConnection インタフェースから派生しているため、プールされた接続に当てはまることは、分散トランザクションを構成する接続にもあてはまります。中間層にあるトランザクションマネージャは、すべてを透過的に処理します。アプリケーションコードを変更しただけでは、アプリケーションは、トランザクションマネージャによるトランザクション処理を妨げることはできません。特に、アプリケーションでは Connection.commit メソッドや Connection.rollback メソッドを呼び出すことができません。また、接続を自動コミットモードに設定することもできません (つまり、Connection.setAutoCommit(true) を呼び出すことができない)。

分散トランザクションに参加するために、アプリケーションで特別に行う必要のあることはありません。通常通り、使用するデータソースへの接続を DataSource.getConnection メソッドで作成するだけで済みます。トランザクションマネージャは、トランザクションを背後で管理します。XADataSource インタフェースは XAConnection オブジェクトを作成し、各 XAConnection オブジェクトはトランザクションマネージャが接続を管理するために使用する XAResource オブジェクトを作成します。

行セット

RowSet インタフェースは、ほかのさまざまなクラスやインタフェースと共に背後で動作します。これらのクラスやインタフェースは 3 つのカテゴリに分けられます。
  1. イベント通知

  2. Metadata
  3. リーダー/ライター機能
    RowSetInternal インタフェースを実装する RowSet オブジェクトでは、関連する RowSetReader オブジェクトで呼び出すことで、データを持つ自身を生成することができます。また、関連する RowSetWriter で呼び出すことで、行に加えた変更を、その行を元々取得したところからデータソースへと書き戻すことができます。データソースに接続したままの行セットでは、データソースを直接操作することができるため、リーダーやライターを使用する必要はありません。

RowSet インタフェースは多くの方法で実装でき、誰もが実装を作成できます。開発者は自由に想像力を働かせ、行セットの新しい使用方法を見つけ出すことが推奨されています。

重要: 「導入されたバージョン: 1.4」と表示された API を使用するコードは、JDBC 3.0 API を実装する JDBC テクノロジドライバを使って実行する必要があります。使おうとする特定の機能をドライバが実装しているかどうかを、ドライバのドキュメントで確認してください。

パッケージの仕様

関連項目

Addison-Wesley Longman から出版されている Java Series ブックでは、javax.sql パッケージのクラスやインタフェースに関する詳細な情報を参照できます。

導入されたバージョン:
1.4

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.