JavaTM 2
Platform
Std. Ed. v1.4.0

javax.sql
インタフェース DataSource


public interface DataSource

この DataSource オブジェクトが表す物理データソースへの接続に対するファクトリです。DriverManager 機能の代わりに、DataSource オブジェクトが接続を得るための適切な手段となります。DataSource インタフェースを実装するオブジェクトは、一般に、JavaTM Naming and Directory (JNDI) API を基にしたネームサービスで登録されています。

DataSource インタフェースは、ドライバベンダーによって実装されています。実装には 3 種類あります。

  1. 基本実装 -- 標準 Connection オブジェクトを生成する
  2. 接続プール実装 -- 自動的に接続プールに参加する Connection オブジェクトを生成する。この実装は中間層の接続プール管理プログラムとともに動作する
  3. 分散トランザクション実装 -- 分散トランザクションで使用され、ほとんどの場合に常に接続プールに参加する Connection オブジェクトを生成する。この実装は中間層のトランザクションマネージャと、多くの場合は常に接続プール管理プログラムとともに動作する

DataSource オブジェクトは、必要に応じて変更可能なプロパティを保持します。たとえば、データソースが別のサーバへ移動した場合、そのサーバについてのプロパティを変更できます。データソースのプロパティを変更できるため、データソースにアクセスするコードを変更する必要がないという利点があります。

DataSource オブジェクトを介してアクセスされたドライバは、自分自身を DriverManager で登録しません。むしろ、DataSource オブジェクトがルックアップ操作により取得されて、Connection オブジェクトを作成するために使用されます。基本実装では、DataSource オブジェクトにより取得された接続は、DriverManager 機能により取得した接続と同じものになります。

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

メソッドの概要
 Connection getConnection()
          この DataSource オブジェクトが表すデータソースへの接続の確立を試みます。
 Connection getConnection(String username, String password)
          この DataSource オブジェクトが表すデータソースへの接続の確立を試みます。
 int getLoginTimeout()
          データベースへの接続試行中に、このデータソースが待機する最長時間 (秒) を取得します。
 PrintWriter getLogWriter()
          この DataSource オブジェクトのログライターを取得します。
 void setLoginTimeout(int seconds)
          データベースへの接続試行中に、このデータソースが待機する最長時間 (秒) を指定します。
 void setLogWriter(PrintWriter out)
          この DataSource オブジェクトのログライターを java.io.PrintWriter オブジェクトに設定します。
 

メソッドの詳細

getConnection

public Connection getConnection()
                         throws SQLException

この DataSource オブジェクトが表すデータソースへの接続の確立を試みます。

戻り値:
データソースへの接続
例外:
SQLException - データベースアクセスエラーが発生した場合

getConnection

public Connection getConnection(String username,
                                String password)
                         throws SQLException

この DataSource オブジェクトが表すデータソースへの接続の確立を試みます。

パラメータ:
username - その代理として接続が行われるデータベースユーザ
password - ユーザのパスワード
戻り値:
データソースへの接続
例外:
SQLException - データベースアクセスエラーが発生した場合

getLogWriter

public PrintWriter getLogWriter()
                         throws SQLException

この DataSource オブジェクトのログライターを取得します。

ログライターとは、このデータソースに対してログが記録されたりトレースされた、すべてのメッセージが表示されるキャラクタ出力ストリームのことです。このオブジェクトのメソッドによるメッセージや、このオブジェクトが作成したほかのオブジェクトによるメッセージなども含まれます。データソースに特有のログライターに表示されたメッセージは、java.sql.DriverManager クラスに関連付けられたログライターには表示されません。DataSource オブジェクトが作成されると、ログライターは null に初期化されます。つまり、デフォルトではログの取得は無効です。

戻り値:
このデータソースのログライター。ログの取得が無効の場合は null
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
setLogWriter(java.io.PrintWriter)

setLogWriter

public void setLogWriter(PrintWriter out)
                  throws SQLException

この DataSource オブジェクトのログライターを java.io.PrintWriter オブジェクトに設定します。

ログライターとは、このデータソースに対してログが記録されたりトレースされた、すべてのメッセージが表示されるキャラクタ出力ストリームのことです。このオブジェクトのメソッドによるメッセージや、このオブジェクトが作成したほかのオブジェクトによるメッセージなども含まれます。データソースに特有のログライターに表示されたメッセージは、java.sql.DriverManager クラスに関連付けられたログライターには表示されません。DataSource オブジェクトが作成されると、ログライターは null に初期化されます。つまり、デフォルトではログの取得は無効です。

パラメータ:
out - 新しいログライター。ログの取得を無効にする場合は null に設定する
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
getLogWriter()

setLoginTimeout

public void setLoginTimeout(int seconds)
                     throws SQLException

データベースへの接続試行中に、このデータソースが待機する最長時間 (秒) を指定します。値が 0 のとき、デフォルトのシステムタイムアウトが設定されている場合はその値になります。そうでない場合はタイムアウトしないことを意味します。DataSource オブジェクトが作成されると、ログインタイムアウトは 0 に初期化されます。

パラメータ:
seconds - データソースのログイン制限時間
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
getLoginTimeout()

getLoginTimeout

public int getLoginTimeout()
                    throws SQLException
データベースへの接続試行中に、このデータソースが待機する最長時間 (秒) を取得します。値が 0 のとき、デフォルトのシステムタイムアウトが設定されている場合はその値になります。そうでない場合はタイムアウトしないことを意味します。DataSource オブジェクトが作成されると、ログインタイムアウトは 0 に初期化されます。

戻り値:
データソースのログイン制限時間
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
setLoginTimeout(int)

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.