|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照:
説明
インタフェースの概要 | |
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 オブジェクトです。 |
サーバ側のデータソースアクセスについて、JavaTM プログラミング言語から処理する API を提供します。このパッケージでは java.sql
パッケージを補足し、バージョン 1.4 リリースでは JavaTM 2 SDK の Standard Edition に含まれています。また、依然として Java 2 SDK, Enterprise Edition (J2EETM) の必須部分です。
java.sql
パッケージは、次の用途の API を提供します。
DriverManager
の代替となる DataSource
インタフェース
アプリケーションでは DataSource
API と RowSet
API を直接使用しますが、接続プール API と分散トランザクション API は中間層インフラストラクチャによって内部的に使用されます。
DataSource
オブジェクトを使用した接続の作成javax.sql
パッケージでは、データソースとの接続を作成するための好ましい方法を提供しています。元の機構である DriverManager
クラスも有効なままであり、DriverManager
クラスを使用したコードも依然として実行できます。ただし、DriverManager
機構よりも多くの利点があるため、新しい DataSource
機構の使用が推奨されています。
接続を確立する際に、DataSource
を使用する主な利点を挙げます。
DataSource
オブジェクトを通じて利用できる。DriverManager
によって作成された接続には接続プールや分散トランザクションといった機能がない
ドライバベンダーは DataSource
の実装を提供します。DataSource
オブジェクトの中には特定の物理データソースを表すものがあり、そのような DataSource
オブジェクトが作成した接続は、その物理データソースへの接続となります。
データソースの論理名は、通常システム管理者やシステム管理者作業を行うユーザによって、Java Naming and Directory InterfaceTM (JNDI) API を使用するネームサービスで登録されます。登録された論理名をルックアップすることで、アプリケーションでは必要な DataSource
オブジェクトを取得できます。そして、取得した DataSource
オブジェクトを使用して、この DataSource
オブジェクトが表す物理データソースへの接続を作成します。
DataSource
オブジェクトが作成した接続を再利用するためにプールできるよう、DataSource
オブジェクトは中間層インフラストラクチャで動作するように実装されています。そのような DataSource
実装を使用するアプリケーションでは、接続プールにある接続を自動的に取得します。また、DataSource
オブジェクトが作成した接続が特別なコーディングをしなくても分散トランザクションで使用できるようにするためにも、DataSource
オブジェクトが中間層インフラストラクチャで動作するように実装されています。
DataSource
オブジェクトによって作成された接続は、接続プールに属します。新しい接続の作成は非常に負荷が大きい作業であるため、これによりパフォーマンスが飛躍的に向上します。接続プールでは、接続の利用および再利用が可能です。そのため、作成する必要のある新規接続の数は実質的に削減されます。
接続プールは完全に透過的です。J2EE 構成の中間層で自動的に行われ、アプリケーションの観点からは、コードを変更する必要はありません。アプリケーションでは単に DataSource.getConnection
メソッドを使用してプールされた接続を取得し、Connection
オブジェクトを使用するのと同じ方法で使用します。
接続プールに使用されるクラスとインタフェースは次のとおりです。
ConnectionPoolDataSource
PooledConnection
ConnectionEvent
ConnectionEventListener
PooledConnection
オブジェクトを作成するために ConnectionPoolDataSource
が呼び出されると、接続プール管理プログラムによって新しい PooledConnection
オブジェクトが ConnectionEventListener
オブジェクトとして登録されます。接続が閉じられるかエラーが発生すると、接続プール管理プログラム (リスナー) が ConnectionEvent
オブジェクトを含む通知を受け取ります。
DataSource
オブジェクトで作成された接続は、分散トランザクションにも参加します。これにより、アプリケーションでは単一トランザクションで複数サーバ上のデータソースにアクセスできるようになります。
分散トランザクションに使用されるクラスとインタフェースは次のとおりです。
XADataSource
XAConnection
XAConnection
インタフェースは PooledConnection
インタフェースから派生しているため、プールされた接続に当てはまることは、分散トランザクションを構成する接続にもあてはまります。中間層にあるトランザクションマネージャは、すべてを透過的に処理します。アプリケーションコードを変更しただけでは、アプリケーションは、トランザクションマネージャによるトランザクション処理を妨げることはできません。特に、アプリケーションでは Connection.commit
メソッドや Connection.rollback
メソッドを呼び出すことができません。また、接続を自動コミットモードに設定することもできません (つまり、Connection.setAutoCommit(true)
を呼び出すことができない)。
分散トランザクションに参加するために、アプリケーションで特別に行う必要のあることはありません。通常通り、使用するデータソースへの接続を DataSource.getConnection
メソッドで作成するだけで済みます。トランザクションマネージャは、トランザクションを背後で管理します。XADataSource
インタフェースは XAConnection
オブジェクトを作成し、各 XAConnection
オブジェクトはトランザクションマネージャが接続を管理するために使用する XAResource
オブジェクトを作成します。
RowSet
インタフェースは、ほかのさまざまなクラスやインタフェースと共に背後で動作します。これらのクラスやインタフェースは 3 つのカテゴリに分けられます。
RowSetListener
RowSet
オブジェクトは、JavaBeans イベント通知機構のプロパティを保持してこれに参加するため、JavaBeansTM のコンポーネントであると言えます。RowSetListener
インタフェースは、特定の RowSet
オブジェクトに発生するイベントを通知するコンポーネントによって実装されます。この種のコンポーネントは、自身をリスナーとし、RowSet.addRowSetListener
メソッドを使用して行セットに登録します。
RowSet
オブジェクトが 1 行を変更、全行を変更、またはカーソル位置を移動すると、この RowSet
オブジェクトで登録された各リスナーにも通知されます。リスナーは、呼び出された通知メソッドの実装を実行します。
RowSetEvent
RowSet
オブジェクトでは RowSetEvent
のインスタンスを作成してリスナーに渡します。リスナーは渡された RowSetEvent
オブジェクトを使用して、どの行セットにイベントがあるかを検出します。
RowSetMetaData
ResultSetMetaData
インタフェースから派生しており、RowSet
オブジェクトの列に関する情報を提供します。アプリケーションでは RowSetMetaData
メソッドを使用して、行セットに含まれる列数や各列に含まれるデータの種類を検出します。
RowSetMetaData
インタフェースでは列に関する情報を設定するメソッドを提供しますが、アプリケーションが使用することは通常ありません。アプリケーションが RowSet
の execute
メソッドを呼び出すと、RowSet
オブジェクトは行の新しいセットを格納し、RowSetMetaData
オブジェクトは内部的に更新されて、新しい列に関する情報を含むようになります。
RowSetInternal
インタフェースを実装する RowSet
オブジェクトでは、関連する RowSetReader
オブジェクトで呼び出すことで、データを持つ自身を生成することができます。また、関連する RowSetWriter
で呼び出すことで、行に加えた変更を、その行を元々取得したところからデータソースへと書き戻すことができます。データソースに接続したままの行セットでは、データソースを直接操作することができるため、リーダーやライターを使用する必要はありません。
RowSetInternal
RowSetInternal
インタフェースを実装することで、RowSet
オブジェクトでは内部状態にアクセスすることができ、リーダーやライター上で呼び出すことができるようになります。行セットは現在の行と、元の値として参照される、現在の行の直前にある行の値を追跡します。また (1) コマンド用に設定されたパラメータと、(2) 行セットに渡された接続 (存在する場合) も追跡します。行セットは RowSetInternal
メソッドを背後で使用することでこれらの情報にアクセスします。アプリケーションがこれらのメソッドを直接呼び出すことはありません。
RowSetReader
RowSetInternal
インタフェースを実装する、切断された RowSet
オブジェクトはリーダー (RowSet
オブジェクトに関連付けられた RowSetReader
オブジェクト) 上で呼び出して、データ付きで生成できます。アプリケーションが RowSet.execute
メソッドを呼び出すと、このメソッドによって行セットのリーダーが呼び出され、ほとんどの作業を行います。リーダーの実装は様々ですが、一般には、データソースへの接続を作成し、データソースからデータを読み込み、そのデータで行セットを生成し、接続を閉じます。また、リーダーは RowSetMetaData
オブジェクトを行セットに対して更新します。行セットの内部状態も、リーダーか、RowSet.execute
メソッドによって直接更新されます。
RowSetWriter
RowSetInternal
インタフェースを実装する、切断された RowSet
オブジェクトはライター (RowSet
オブジェクトに関連付けられた RowSetWriter
オブジェクト) 上で呼び出して、変更を基本となるデータソースに書き戻します。ライターの実装は様々ですが、一般には次のように動作します。
RowSet
インタフェースは多くの方法で実装でき、誰もが実装を作成できます。開発者は自由に想像力を働かせ、行セットの新しい使用方法を見つけ出すことが推奨されています。
重要: 「導入されたバージョン: 1.4」と表示された API を使用するコードは、JDBC 3.0 API を実装する JDBC テクノロジドライバを使って実行する必要があります。使おうとする特定の機能をドライバが実装しているかどうかを、ドライバのドキュメントで確認してください。
javax.sql
パッケージのクラスやインタフェースに関する詳細な情報を参照できます。
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
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.