public class DriverManager extends Object
一連のJDBCドライバを管理するための基本的なサービスです。
注: JDBC 2.0 APIで新しく追加されたDataSource
インタフェースを使用してデータ・ソースに接続することも可能です。データ・ソースへの接続時にはDataSource
オブジェクトの使用をお薦めします。
DriverManager
クラスは、初期化時にjdbc.driversシステム・プロパティで参照されるドライバ・クラスをロードしようとします。これにより、ユーザーはアプリケーションで使用するJDBCドライバをカスタマイズできます。たとえば、~/.hotjava/propertiesファイルで次の項目を指定します。
jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
DriverManager
メソッドgetConnection
とgetDrivers
は、Java Standard Edition サービス・プロバイダ・メカニズムをサポートするように拡張されました。JDBC 4.0ドライバは、ファイルMETA-INF/services/java.sql.Driver
を含める必要があります。このファイルには、java.sql.Driver
のJDBCドライバ実装の名前が含まれます。たとえばmy.sql.Driver
クラスをロードするために、META-INF/services/java.sql.Driver
ファイルに次のエントリが含まれます。
my.sql.Driver
アプリケーションでは、Class.forName()
を使用してJDBCドライバを明示的にロードする必要がなくなりました。現在Class.forName()
を使用してJDBCドライバをロードする既存のプログラムは、変更なしで動作し続けます。
getConnection
メソッドが呼び出されると、DriverManager
は、初期化時にロードされたドライバや、現アプレットあるいはアプリケーションと同じクラス・ローダーを使用して明示的にロードされたドライバの中から適切なドライバを探そうとします。
Java 2 SDK, Standard Edition, Version 1.3以降は、ログ・ストリームは、適切なアクセス権が許可されている場合に限り設定できます。通常これは、ツールPolicyToolを使用して行われます。このツールは、permission java.sql.SQLPermission "setLog"
を許可するのに使用できます。
Driver
, Connection
修飾子と型 | メソッドと説明 |
---|---|
static void |
deregisterDriver(Driver driver)
DriverManager の登録済ドライバ・リストから、指定されたドライバを削除します。 |
static Connection |
getConnection(String url)
指定されたデータベースのURLへの接続を試みます。
|
static Connection |
getConnection(String url, Properties info)
指定されたデータベースのURLへの接続を試みます。
|
static Connection |
getConnection(String url, String user, String password)
指定されたデータベースのURLへの接続を試みます。
|
static Driver |
getDriver(String url)
指定されたURLを認識するドライバを獲得しようとします。
|
static Enumeration<Driver> |
getDrivers()
現在の呼出し元がアクセスしている、現在ロードされているすべてのJDBCドライバの列挙を取得します。
|
static int |
getLoginTimeout()
データベースにログインしているときに、ドライバが待つことのできる最長の時間を秒数で取得します。
|
static PrintStream |
getLogStream()
非推奨。
getLogWriter を使用してください |
static PrintWriter |
getLogWriter()
ログ・ライターを取得します。
|
static void |
println(String message)
現在のJDBCログ・ストリームにメッセージを印刷します。
|
static void |
registerDriver(Driver driver)
指定されたドライバを
DriverManager に登録します。 |
static void |
registerDriver(Driver driver, DriverAction da)
指定されたドライバを
DriverManager に登録します。 |
static void |
setLoginTimeout(int seconds)
識別された後のドライバがデータベースに接続しようとするときの最大待機時間(秒単位)を設定します。
|
static void |
setLogStream(PrintStream out)
非推奨。
setLogWriter を使用してください。 |
static void |
setLogWriter(PrintWriter out)
DriverManager およびすべてのドライバが使用する、ログおよびトレースのPrintWriter オブジェクトを設定します。 |
public static PrintWriter getLogWriter()
get/setlogStream
メソッドの代わりにgetLogWriter
メソッドおよびsetLogWriter
メソッドを使用するべきです。java.io.PrintWriter
オブジェクトsetLogWriter(java.io.PrintWriter)
public static void setLogWriter(PrintWriter out)
DriverManager
およびすべてのドライバが使用する、ログおよびトレースのPrintWriter
オブジェクトを設定します。
setLogWriter
メソッドの導入によって、マイナー・バージョンの管理の問題が発生します。setLogWriter
メソッドはgetLogStream
によって返されるPrintStream
オブジェクトを生成できません。Javaプラットフォームには逆方向の変換はありません。そのため、新しいアプリケーションで、setLogWriter
を使用し、getLogStream
を使用しているJDBC 1.0ドライバも使用しているものは、そのドライバによって記述されたデバッグ情報を見ることができません。
Java 2 SDK, Standard Edition, Version 1.3リリース以降では、ログ・ストリームを設定する前に、SQLPermission
オブジェクトがあるかどうかをこのメソッドがチェックします。SecurityManager
が存在し、そのcheckPermission
メソッドがログ・ライターの設定を許可しない場合、このメソッドはjava.lang.SecurityException
をスローします。
out
- 新しいログおよびトレースのPrintStream
オブジェクト。ログおよびトレースを無効にする場合はnull
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがログ・ライターの設定を拒否した場合SecurityManager.checkPermission(java.security.Permission)
, getLogWriter()
public static Connection getConnection(String url, Properties info) throws SQLException
DriverManager
は、登録されたJDBCドライバの集合から適切なドライバを選択しようとします。
注: プロパティがurl
の一部として指定され、Properties
オブジェクトでも指定された場合、どちらの値が優先されるかについては、実装で定義されます。移植性を最大限にするため、アプリケーションはプロパティを一度だけ指定するようにしてください。
url
- 次の形式のデータベースURL: jdbc:subprotocol:subname
info
- 接続引数としての、任意の文字列タグおよび値のペアのリスト。通常は、少なくとも「user」プロパティと「password」プロパティは指定するべきSQLException
- データベース・アクセス・エラーが発生した場合、またはurlがnull
の場合SQLTimeoutException
- ドライバが、setLoginTimeout
メソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在のデータベース接続試行の取消しを試みたときpublic static Connection getConnection(String url, String user, String password) throws SQLException
DriverManager
は、登録されたJDBCドライバの集合から適切なドライバを選択しようとします。
注: user
またはpassword
プロパティがurl
の一部としても指定された場合、どちらの値が優先されるかについては、実装で定義されます。移植性を最大限にするため、アプリケーションはプロパティを一度だけ指定するようにしてください。
url
- 次の形式のデータベースURL: jdbc:subprotocol:subname
user
- その代理として接続が行われるデータベース・ユーザーpassword
- ユーザーのパスワードSQLException
- データベース・アクセス・エラーが発生した場合、またはurlがnull
の場合SQLTimeoutException
- ドライバが、setLoginTimeout
メソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在のデータベース接続試行の取消しを試みたときpublic static Connection getConnection(String url) throws SQLException
DriverManager
は、登録されたJDBCドライバの集合から適切なドライバを選択しようとします。url
- 次の形式のデータベースURL: jdbc:subprotocol:subname
SQLException
- データベース・アクセス・エラーが発生した場合、またはurlがnull
の場合SQLTimeoutException
- ドライバが、setLoginTimeout
メソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在のデータベース接続試行の取消しを試みたときpublic static Driver getDriver(String url) throws SQLException
DriverManager
は、登録されたJDBCドライバの集合から適切なドライバを選択しようとします。url
- 形式jdbc:subprotocol:subname
のデータベースURLDriver
オブジェクトSQLException
- データベース・アクセス・エラーが発生した場合public static void registerDriver(Driver driver) throws SQLException
DriverManager
に登録します。新しくロードされるドライバ・クラスはregisterDriver
メソッドを呼び出し、それをDriverManager
に通知するべきです。ドライバが現在登録されている場合、アクションは実行されません。driver
- DriverManager
に登録される新しいJDBCドライバSQLException
- データベース・アクセス・エラーが発生した場合NullPointerException
- driver
がnullの場合public static void registerDriver(Driver driver, DriverAction da) throws SQLException
DriverManager
に登録します。新しくロードされるドライバ・クラスはregisterDriver
メソッドを呼び出し、それをDriverManager
に通知するべきです。ドライバが現在登録されている場合、アクションは実行されません。driver
- DriverManager
に登録される新しいJDBCドライバda
- DriverManager#deregisterDriver
が呼び出されたときに使用するDriverAction
実装SQLException
- データベース・アクセス・エラーが発生した場合NullPointerException
- driver
がnullの場合public static void deregisterDriver(Driver driver) throws SQLException
DriverManager
の登録済ドライバ・リストから、指定されたドライバを削除します。
削除するドライバとしてnull
値が指定された場合、アクションは実行されません。
セキュリティ・マネージャが存在し、そのcheckPermission
がアクセス権を拒否した場合は、SecurityException
がスローされます。
指定されたドライバが登録済ドライバ・リストにない場合、アクションは実行されません。ドライバが見つからなかった場合、そのドライバは登録済ドライバ・リストから削除されます。
JDBCドライバの登録時にDriverAction
インスタンスが指定された場合は、登録済ドライバ・リストからドライバが削除される前に、その登録解除メソッドが呼び出されます。
driver
- 削除するJDBCドライバSQLException
- データベース・アクセス・エラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがドライバを登録解除するためのアクセス権を拒否した場合。SecurityManager.checkPermission(java.security.Permission)
public static Enumeration<Driver> getDrivers()
注: ドライバのクラス名は、d.getClass().getName()
を使用して見つけることができます
public static void setLoginTimeout(int seconds)
seconds
- ログイン時間制限(秒単位)。ゼロは制限なしgetLoginTimeout()
public static int getLoginTimeout()
setLoginTimeout(int)
@Deprecated public static void setLogStream(PrintStream out)
setLogWriter
を使用してくださいDriverManager
およびすべてのドライバが使用する、ログおよびトレースのPrintStreamを設定します。
Java 2 SDK, Standard Edition, Version 1.3リリースでは、ログ・ストリームを設定する前に、SQLPermission
オブジェクトがあるかどうかをこのメソッドがチェックします。SecurityManager
が存在し、そのcheckPermission
メソッドがログ・ライターの設定を許可しない場合、このメソッドはjava.lang.SecurityException
をスローします。
out
- ログおよびトレースの新しいPrintStream。無効にする場合はnull
に設定するSecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがログ・ストリームの設定を拒否した場合SecurityManager.checkPermission(java.security.Permission)
, getLogStream()
@Deprecated public static PrintStream getLogStream()
getLogWriter
を使用してくださいDriverManager
およびすべてのドライバが使用する、ログおよびトレースのPrintStreamを取得します。null
setLogStream(java.io.PrintStream)
public static void println(String message)
message
- ログ・メッセージまたはトレース・メッセージ バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。