JavaTM 2 Platform
Standard Ed. 5.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 以降の JDK に含まれています。また、依然として 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 機構よりも多くの利点があるため、新しい DataSource 機構を使用することをお薦めします。

接続を確立する際に DataSource オブジェクトを使用する主な利点を挙げます。

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

データソースの論理名は、通常はシステム管理者やシステム管理者の作業を行うユーザによって、Java Naming and Directory InterfaceTM (JNDI) API を使用するネームサービスに登録されます。アプリケーションでは、登録されている論理名をルックアップして、必要な 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. メタデータ
  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
Standard Ed. 5.0

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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。