- すべてのスーパー・インタフェース:
CommonDataSource,Wrapper
public interface DataSource extends CommonDataSource, Wrapper
このDataSourceオブジェクトが表す物理データ・ソースへの接続に対するファクトリです。 DriverManager機能の代わりに、DataSourceオブジェクトが接続を得るための適切な手段となります。 DataSourceインタフェースを実装するオブジェクトは、一般に、Java™ Naming and Directory (JNDI) APIを基にしたネーム・サービスに登録されています。
DataSourceインタフェースは、ドライバ・ベンダーによって実装されています。 実装には3種類あります。
- 基本実装 -- 標準
Connectionオブジェクトを生成する - 接続プール実装 -- 自動的に接続プールに参加する
Connectionオブジェクトを生成する。 この実装は中間層の接続プール管理プログラムとともに動作する。 - 分散トランザクション実装 -- 分散トランザクションで使用され、ほとんどの場合に常に接続プールに参加する
Connectionオブジェクトを生成する。 この実装は中間層のトランザクション・マネージャと、多くの場合は常に接続プール管理プログラムとともに動作する。
DataSourceオブジェクトは、必要に応じて変更可能なプロパティを保持します。 たとえば、データ・ソースが別のサーバーへ移動した場合、そのサーバーについてのプロパティを変更できます。 データ・ソースのプロパティを変更できるため、データ・ソースにアクセスするコードを変更する必要がないという利点があります。
DataSourceオブジェクトを介してアクセスされたドライバは、自分自身をDriverManagerで登録しません。 むしろ、DataSourceオブジェクトはルックアップ操作で検索され、Connectionオブジェクトの作成に使用されます。 基本実装では、DataSourceオブジェクトにより取得された接続は、DriverManager機能により取得した接続と同じものになります。
DataSourceの実装には引数なしのpublicコンストラクタが含まれている必要があります。
- 導入されたバージョン:
- 1.4
-
メソッドのサマリー
修飾子と型 メソッド 説明 default ConnectionBuildercreateConnectionBuilder()新しいConnectionBuilderインスタンスを作成ConnectiongetConnection()このDataSourceオブジェクトが表すデータ・ソースへの接続の確立を試みます。ConnectiongetConnection(String username, String password)このDataSourceオブジェクトが表すデータ・ソースへの接続の確立を試みます。intgetLoginTimeout()データベースへの接続試行中に、このデータ・ソースが待機する最長時間(秒)を取得します。PrintWritergetLogWriter()このDataSourceオブジェクトのログ・ライターを取得します。voidsetLoginTimeout(int seconds)データベースへの接続試行中に、このデータ・ソースが待機する最長時間(秒)を指定します。voidsetLogWriter(PrintWriter out)このDataSourceオブジェクトのログ・ライターをjava.io.PrintWriterオブジェクトに設定します。
-
メソッドの詳細
-
getConnection
Connection getConnection() throws SQLExceptionこの
DataSourceオブジェクトが表すデータ・ソースへの接続の確立を試みます。- 戻り値:
- データ・ソースへの接続
- 例外:
SQLException- データベース・アクセス・エラーが発生した場合SQLTimeoutException- ドライバが、setLoginTimeoutメソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在のデータベース接続の試みを取り消そうとしたとき
-
getConnection
Connection getConnection(String username, String password) throws SQLExceptionこの
DataSourceオブジェクトが表すデータ・ソースへの接続の確立を試みます。- パラメータ:
username- その代理として接続が行われるデータベース・ユーザーpassword- ユーザーのパスワード- 戻り値:
- データ・ソースへの接続
- 例外:
SQLException- データベース・アクセス・エラーが発生した場合SQLTimeoutException- ドライバが、setLoginTimeoutメソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在のデータベース接続の試みを取り消そうとしたとき- 導入されたバージョン:
- 1.4
-
getLogWriter
PrintWriter getLogWriter() throws SQLExceptionこの
DataSourceオブジェクトのログ・ライターを取得します。ログ・ライターとは、このデータ・ソースに対するすべてのロギング・メッセージやトレース・メッセージの出力先となるキャラクタ出力ストリームのことです。 このオブジェクトのメソッドによって出力されたメッセージや、このオブジェクトが作成した他のオブジェクトのメソッドによって出力されたメッセージなども含まれます。 データ・ソース固有のログ・ライターに表示されたメッセージは、
java.sql.DriverManagerクラスに関連付けられたログ・ライターには出力されません。DataSourceオブジェクトが作成されると、ログ・ライターはnullに初期化されます。つまり、デフォルトではロギングは無効です。- 定義:
- インタフェース
CommonDataSource内のgetLogWriter - 戻り値:
- このデータ・ソースのログ・ライター。ログの取得が無効の場合はnull
- 例外:
SQLException- データベース・アクセス・エラーが発生した場合- 導入されたバージョン:
- 1.4
- 関連項目:
CommonDataSource.setLogWriter(java.io.PrintWriter)
-
setLogWriter
void setLogWriter(PrintWriter out) throws SQLExceptionこの
DataSourceオブジェクトのログ・ライターをjava.io.PrintWriterオブジェクトに設定します。ログ・ライターとは、このデータ・ソースに対するすべてのロギング・メッセージやトレース・メッセージの出力先となるキャラクタ出力ストリームのことです。 このオブジェクトのメソッドによって出力されたメッセージや、このオブジェクトが作成した他のオブジェクトのメソッドによって出力されたメッセージなども含まれます。 データ・ソース固有のログ・ライターに表示されたメッセージは、
java.sql.DriverManagerクラスに関連付けられたログ・ライターには出力されません。DataSourceオブジェクトが作成されると、ログ・ライターはnullに初期化されます。つまり、デフォルトではロギングは無効です。- 定義:
- インタフェース
CommonDataSource内のsetLogWriter - パラメータ:
out- 新しいログ・ライター。ロギングを無効にする場合はnullに設定する- 例外:
SQLException- データベース・アクセス・エラーが発生した場合- 導入されたバージョン:
- 1.4
- 関連項目:
CommonDataSource.getLogWriter()
-
setLoginTimeout
void setLoginTimeout(int seconds) throws SQLExceptionデータベースへの接続試行中に、このデータ・ソースが待機する最長時間(秒)を指定します。 値が0のとき、デフォルトのシステム・タイムアウトが設定されている場合はその値になります。そうでない場合はタイムアウトしないことを意味します。
DataSourceオブジェクトが作成されると、ログイン・タイムアウトは0に初期化されます。- 定義:
- インタフェース
CommonDataSource内のsetLoginTimeout - パラメータ:
seconds- データ・ソースのログイン制限時間- 例外:
SQLException- データベース・アクセス・エラーが発生した場合。- 導入されたバージョン:
- 1.4
- 関連項目:
CommonDataSource.getLoginTimeout()
-
getLoginTimeout
int getLoginTimeout() throws SQLExceptionデータベースへの接続試行中に、このデータ・ソースが待機する最長時間(秒)を取得します。 値が0のとき、デフォルトのシステム・タイムアウトが設定されている場合はその値になります。そうでない場合はタイムアウトしないことを意味します。DataSourceオブジェクトが作成されると、ログイン・タイムアウトは0に初期化されます。- 定義:
- インタフェース
CommonDataSource内のgetLoginTimeout - 戻り値:
- データ・ソースのログイン制限時間
- 例外:
SQLException- データベース・アクセス・エラーが発生した場合。- 導入されたバージョン:
- 1.4
- 関連項目:
CommonDataSource.setLoginTimeout(int)
-
createConnectionBuilder
default ConnectionBuilder createConnectionBuilder() throws SQLException新しいConnectionBuilderインスタンスを作成- 実装要件:
- デフォルトの実装では、
SQLFeatureNotSupportedExceptionがスローされます。 - 戻り値:
- 作成されたConnectionBuilderインスタンス
- 例外:
SQLException- ビルダーの作成中にエラーが発生した場合SQLFeatureNotSupportedException- 運転手がシャーディングをサポートしていない場合- 導入されたバージョン:
- 9
- 関連項目:
ConnectionBuilder
-