JavaのSQLフレームワークでは、複数のデータベース・ドライバが使用可能です。
各ドライバは、Driverインタフェースを実装するクラスを指定しなければいけません。
DriverManagerは、見つけたすべてのドライバをロードしようとします。そして、指定された接続要求に対し、各ドライバにターゲットのURLに接続するように要求します。
Driverクラスは、小さく、かつスタンドアロンであることを強くお薦めします。そうすれば、支援のためのコードを大量に導入することなく、Driverクラスをロードし、クエリーすることができるからです。
Driverクラスをロードするときは、そのインスタンスを生成し、DriverManagerで登録しなければいけません。 つまり、ユーザーは次のメソッドを呼び出すことでドライバをロードし、登録できます。
Class.forName("foo.bah.Driver")
JDBCドライバは、DriverManager.deregisterDriver(java.sql.Driver)が呼び出されたときに通知を受け取るためにDriverAction実装を作成できます。
- 導入されたバージョン:
- 1.1
- 関連項目:
DriverManager
,Connection
,DriverAction
-
メソッドのサマリー
修飾子と型メソッド説明boolean
acceptsURL(String url)
指定されたURLに接続できるとドライバが判断するかどうかを取得します。connect(String url, Properties info)
指定されたURLにデータベース接続を試みます。int
ドライバのメジャー・バージョン番号を取得します。int
ドライバのマイナー・バージョンを取得します。このドライバで使用されるすべてのロガーの親ロガーを返します。getPropertyInfo(String url, Properties info)
このドライバの有効なプロパティについての情報を取得します。boolean
このドライバが正規のJDBC準拠ドライバかどうかを報告します。
-
メソッドの詳細
-
connect
Connection connect(String url, Properties info) throws SQLException指定されたURLにデータベース接続を試みます。 指定されたURLに、間違ったドライバを接続しようとしていることがわかった場合には、ドライバはnullを返さなければいけません。 これは、JDBCドライバ・マネージャが、指定されたURLに接続するように要求されて、ロードされているドライバに順番にそのURLを渡すときも同様です。ドライバが、指定されたURLに接続するための正しいドライバであっても、データベースへの接続に障害が生じた場合には、ドライバは
SQLException
をスローします。Properties
の引数は、任意の文字列タグおよび値のペアを、接続引数として渡すために使用できます。 通常は、少なくとも「user」プロパティと「password」プロパティをProperties
オブジェクトに含めるべきです。ノート: プロパティが
url
の一部として指定され、Properties
オブジェクトでも指定された場合、どちらの値が優先されるかについては、実装で定義されます。 移植性を最大限にするため、アプリケーションはプロパティを一度だけ指定するようにしてください。- パラメータ:
url
- 接続先のデータベースのURLinfo
- 接続引数としての、任意の文字列タグおよび値のペアのリスト。 通常は、少なくとも「user」プロパティと「password」プロパティを指定するべきです。- 戻り値:
- URLへの接続を表す
Connection
オブジェクト - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはurlがnull
の場合
-
acceptsURL
boolean acceptsURL(String url) throws SQLException指定されたURLに接続できるとドライバが判断するかどうかを取得します。 通常、ドライバは、URLで指定されたサブプロトコルを認識する場合はtrue
、認識しない場合はfalse
を返します。- パラメータ:
url
- データベースのURL- 戻り値:
- このドライバが指定されたURLを認識する場合は
true
、そうでない場合はfalse
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはurlがnull
の場合
-
getPropertyInfo
DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLExceptionこのドライバの有効なプロパティについての情報を取得します。getPropertyInfo
メソッドは、データベースに接続するために十分な情報を得る目的で、汎用GUIツールが人に確認すべきプロパティを発見するためものです。 これまでに人が与えた値によっては、追加の値が必要になることがあり、そのためにgetPropertyInfo
メソッドへの呼出しを何回か繰り返す必要が生じることがあることに注意してください。- パラメータ:
url
- 接続先のデータベースのURLinfo
- 接続オープン時に送られるタグ/値ペアの推奨リスト- 戻り値:
- 可能なプロパティを記述する
DriverPropertyInfo
オブジェクトの配列。 プロパティが必要ない場合は、この配列は空になることもある - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合
-
getMajorVersion
int getMajorVersion()ドライバのメジャー・バージョン番号を取得します。 最初は、この値は1であるべきです。- 戻り値:
- このドライバのメジャー・バージョン番号
-
getMinorVersion
int getMinorVersion()ドライバのマイナー・バージョンを取得します。 最初は、この値は0であるべきです。- 戻り値:
- このドライバのマイナー・バージョン番号
-
jdbcCompliant
boolean jdbcCompliant()このドライバが正規のJDBC準拠ドライバかどうかを報告します。 ドライバはJDBCの準拠テストにパスする場合にだけtrue
を返し、そうでない場合はfalse
を返す必要があります。JDBCに準拠するには、JDBC APIとSQL 92 Entry Levelの完全なサポートが必要です。 JDBC準拠のドライバは、主要な商用データベースのすべてで使用できます。
このメソッドは、JDBC準拠ではないドライバの開発を推奨することは意図していません。しかし、いくつかのベンダーが、完全なデータベース機能をサポートしていない軽量データベース、あるいは文献情報検索のようなSQLによる実装が実施できない特別なデータベースに対して、JDBCのAPIとフレームワークを適用することに興味を持っていることを認識した結果としてあります。
- 戻り値:
- このドライバがJDBC準拠の場合は
true
、そうでない場合はfalse
-
getParentLogger
Logger getParentLogger() throws SQLFeatureNotSupportedExceptionこのドライバで使用されるすべてのロガーの親ロガーを返します。 これはこのドライバによって使用されているすべてのロガーの上位ロガーであるルート・ロガーからもっとも遠いロガーになるはずです。 このロガーを構成すると、ドライバによって生成されたすべてのログ・メッセージに影響します。 最悪の場合、これがルートLoggerになる可能性があります。- 戻り値:
- このドライバの親ロガー
- 例外:
SQLFeatureNotSupportedException
- ドライバがjava.util.logging
を使用しない場合。- 導入されたバージョン:
- 1.7
-