JavaTM Platform
Standard Ed. 6

java.sql
クラス DriverManager

java.lang.Object
  上位を拡張 java.sql.DriverManager

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 メソッド getConnectiongetDrivers は、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()
          推奨されていません。  
static PrintWriter getLogWriter()
          ログライターを取得します。
static void println(String message)
          現在の JDBC ログストリームにメッセージを印刷します。
static void registerDriver(Driver driver)
          指定されたドライバを DriverManager に登録します。
static void setLoginTimeout(int seconds)
          データベースに接続しようとしているときに、ドライバが待つことのできる最長の時間を秒数で設定します。
static void setLogStream(PrintStream out)
          推奨されていません。  
static void setLogWriter(PrintWriter out)
          DriverManager およびすべてのドライバが使用する、ログおよびトレースの PrintWriter オブジェクトを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getLogWriter

public static PrintWriter getLogWriter()
ログライターを取得します。 getLogWriter メソッドおよび setLogWriter メソッドは、推奨されない get/setlogStream メソッドの代わりに使用します。

戻り値:
java.io.PrintWriter オブジェクト
導入されたバージョン:
1.2
関連項目:
setLogWriter(java.io.PrintWriter)

setLogWriter

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 メソッドがログライターの設定を拒否した場合
導入されたバージョン:
1.2
関連項目:
SecurityManager.checkPermission(java.security.Permission), getLogWriter()

getConnection

public static Connection getConnection(String url,
                                       Properties info)
                                throws SQLException
指定されたデータベースの URL への接続を試みます。DriverManager は、登録された JDBC ドライバの集合から適切なドライバを選択しようとします。

パラメータ:
url - jdbc:subprotocol:subname 形式のデータベース URL
info - 接続引数としての、任意の文字列タグおよび値のペアのリスト。通常は、少なくとも "user" プロパティーと "password" プロパティーは指定しなければならない
戻り値:
URL への Connection
例外:
SQLException - データベースアクセスエラーが発生した場合

getConnection

public static Connection getConnection(String url,
                                       String user,
                                       String password)
                                throws SQLException
指定されたデータベースの URL への接続を試みます。DriverManager は、登録された JDBC ドライバの集合から適切なドライバを選択しようとします。

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

getConnection

public static Connection getConnection(String url)
                                throws SQLException
指定されたデータベースの URL への接続を試みます。DriverManager は、登録された JDBC ドライバの集合から適切なドライバを選択しようとします。

パラメータ:
url - jdbc:subprotocol:subname 形式のデータベース URL
戻り値:
URL への接続
例外:
SQLException - データベースアクセスエラーが発生した場合

getDriver

public static Driver getDriver(String url)
                        throws SQLException
指定された URL を認識するドライバを獲得しようとします。DriverManager は、登録された JDBC ドライバの集合から適切なドライバを選択しようとします。

パラメータ:
url - jdbc:subprotocol:subname 形式のデータベース URL
戻り値:
指定された URL に接続できるドライバを表す Driver オブジェクト
例外:
SQLException - データベースアクセスエラーが発生した場合

registerDriver

public static void registerDriver(Driver driver)
                           throws SQLException
指定されたドライバを DriverManager に登録します。新しくロードされるドライバクラスは registerDriver メソッドを呼び出し、それを DriverManager に通知しなければいけません。

パラメータ:
driver - DriverManager に登録される新しい JDBC ドライバ
例外:
SQLException - データベースアクセスエラーが発生した場合

deregisterDriver

public static void deregisterDriver(Driver driver)
                             throws SQLException
DriverManager のリストからドライバを除外します。アプレットは、自身のクラスローダーからドライバを除くことだけが可能です。

パラメータ:
driver - 除外する JDBC ドライバ
例外:
SQLException - データベースアクセスエラーが発生した場合

getDrivers

public static Enumeration<Driver> getDrivers()
現在の呼び出し元がアクセスしている、ロードされているすべての JDBC ドライバの列挙を取得します。  

注: ドライバのクラス名は、d.getClass().getName() を使用して見つけることができます。

戻り値:
呼び出し元のクラスローダーによってロードされる JDBC ドライバのリスト

setLoginTimeout

public static void setLoginTimeout(int seconds)
データベースに接続しようとしているときに、ドライバが待つことのできる最長の時間を秒数で設定します。

パラメータ:
seconds - ログイン時間制限 (秒単位)。ゼロは制限なし
関連項目:
getLoginTimeout()

getLoginTimeout

public static int getLoginTimeout()
データベースにログインしているときに、ドライバが待つことのできる最長の時間を秒数で取得します。

戻り値:
ドライバのログインのタイムリミット (秒単位)
関連項目:
setLoginTimeout(int)

setLogStream

public static void setLogStream(PrintStream out)
推奨されていません。 

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()

getLogStream

public static PrintStream getLogStream()
推奨されていません。 

DriverManager およびすべてのドライバが使用する、ログおよびトレースの PrintStream を取得します。

戻り値:
ログおよびトレースの PrintStream。無効な場合は null
関連項目:
setLogStream(java.io.PrintStream)

println

public static void println(String message)
現在の JDBC ログストリームにメッセージを印刷します。

パラメータ:
message - ログメッセージまたはトレースメッセージ

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。