モジュール java.sql
パッケージ java.sql

クラスDriverManager

java.lang.Object
java.sql.DriverManager

public class DriverManager extends Object
一連のJDBCドライバを管理するための基本的なサービスです。

注意: DataSourceインタフェースは、データソースに接続する別の方法を提供します。 データ・ソースへの接続時にはDataSourceオブジェクトの使用をお薦めします。

DriverManagerクラスは、初期化の一環として、次の方法で使用可能なJDBCドライバをロードしようとします:

  • JDBCドライバの完全修飾クラス名のコロン区切りリストを含むjdbc.driversシステム・プロパティ。 各ドライバは、システム・クラス・ローダー:
    • jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
  • サービス・プロバイダのロード・メカニズムによってロードされる、java.sql.Driverクラスのサービス・プロバイダ。

実装上のノート:
DriverManagerの初期化は遅れて実行され、スレッド・コンテキスト・クラス・ローダーを使用してサービス・プロバイダを検索します。 アプリケーションにロードされ、使用可能なドライバは、DriverManagerによるドライバの初期化をトリガーするスレッドのスレッド・コンテキスト・クラス・ローダーによって異なります。

メソッドgetConnectionが呼び出されると、DriverManagerは、初期化時にロードされたドライバと現在のアプリケーションと同じクラス・ローダーを使用して明示的にロードされたドライバの中から適切なドライバを探し出します。

導入されたバージョン:
1.1
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static void
    DriverManagerの登録済ドライバ・リストから、指定されたドライバを削除します。
    static Stream<Driver>
    現在の呼び出し元がアクセスしている、現在ロードされているすべてのJDBCドライバを含むストリームを取得します。
    static Connection
    指定されたデータベースのURLへの接続を試みます。
    static Connection
    getConnection(String url, String user, String password)
    指定されたデータベースのURLへの接続を試みます。
    static Connection
    指定されたデータベースのURLへの接続を試みます。
    static Driver
    指定されたURLを認識するドライバを獲得しようとします。
    現在の呼出し元がアクセスしている、現在ロードされているすべてのJDBCドライバの列挙を取得します。
    static int
    データベースにログインしているときに、ドライバが待つことのできる最長の時間を秒数で取得します。
    非推奨。
    getLogWriterを使用
    ログ・ライターを取得します。
    static void
    println(String message)
    現在のJDBCログ・ストリームにメッセージを印刷します。
    static void
    指定されたドライバをDriverManagerに登録します。
    static void
    指定されたドライバをDriverManagerに登録します。
    static void
    setLoginTimeout(int seconds)
    識別された後のドライバがデータベースに接続しようとするときの最大待機時間(秒単位)を設定します。
    static void
    非推奨。
    setLogWriterを使用
    static void
    DriverManagerおよびすべてのドライバが使用する、ログおよびトレースのPrintWriterオブジェクトを設定します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • メソッドの詳細

    • getLogWriter

      public static PrintWriter getLogWriter()
      ログ・ライターを取得します。 非推奨のget/setlogStreamメソッドの代わりにgetLogWriterメソッドおよびsetLogWriterメソッドを使用するべきです。
      戻り値:
      java.io.PrintWriterオブジェクト
      導入されたバージョン:
      1.2
      関連項目:
    • setLogWriter

      public static void setLogWriter(PrintWriter out)
      DriverManagerおよびすべてのドライバが使用する、ログおよびトレースのPrintWriterオブジェクトを設定します。

      セキュリティ・マネージャが存在する場合、そのcheckPermissionメソッドが最初にSQLPermission("setLog")アクセス許可で呼び出され、呼び出し元がsetLogWriterを呼び出すことが許可されているかどうかがチェックされます。

      パラメータ:
      out - 新しいログおよびトレースのPrintStreamオブジェクト。ログおよびトレースを無効にする場合はnull
      例外:
      SecurityException - セキュリティ・マネージャが存在し、checkPermissionメソッドがログ・ライターを設定する許可を拒否した場合。
      導入されたバージョン:
      1.2
      関連項目:
    • getConnection

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

      ノート: プロパティがurlの一部として指定され、Propertiesオブジェクトでも指定された場合、どちらの値が優先されるかについては、実装で定義されます。 移植性を最大限にするため、アプリケーションはプロパティを一度だけ指定するようにしてください。

      パラメータ:
      url - 次の形式のデータベースURL: jdbc:subprotocol:subname
      info - 接続引数としての、任意の文字列タグおよび値のペアのリスト。通常は、少なくとも「user」プロパティと「password」プロパティは指定するべき
      戻り値:
      URLへのConnection
      例外:
      SQLException - データベース・アクセス・エラーが発生した場合、またはurlがnullの場合
      SQLTimeoutException - ドライバが、setLoginTimeoutメソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在のデータベース接続の試みを取り消そうとしたとき
    • getConnection

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

      ノート: userまたはpasswordプロパティがurlの一部としても指定された場合、どちらの値が優先されるかについては、実装で定義されます。 移植性を最大限にするため、アプリケーションはプロパティを一度だけ指定するようにしてください。

      パラメータ:
      url - 次の形式のデータベースURL: jdbc:subprotocol:subname
      user - その代理として接続が行われるデータベース・ユーザー
      password - ユーザーのパスワード
      戻り値:
      URLへの接続
      例外:
      SQLException - データベース・アクセス・エラーが発生した場合、またはurlがnullの場合
      SQLTimeoutException - ドライバが、setLoginTimeoutメソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在のデータベース接続の試みを取り消そうとしたとき
    • getConnection

      public static Connection getConnection(String url) throws SQLException
      指定されたデータベースのURLへの接続を試みます。 DriverManagerは、登録されたJDBCドライバの集合から適切なドライバを選択しようとします。
      パラメータ:
      url - 次の形式のデータベースURL: jdbc:subprotocol:subname
      戻り値:
      URLへの接続
      例外:
      SQLException - データベース・アクセス・エラーが発生した場合、またはurlがnullの場合
      SQLTimeoutException - ドライバが、setLoginTimeoutメソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在のデータベース接続の試みを取り消そうとしたとき
    • 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 - データベース・アクセス・エラーが発生した場合
      NullPointerException - driverがnullの場合
    • registerDriver

      public static void registerDriver(Driver driver, DriverAction da) throws SQLException
      指定されたドライバをDriverManagerに登録します。 新しくロードされるドライバ・クラスはregisterDriverメソッドを呼び出し、それをDriverManagerに通知するべきです。 ドライバが現在登録されている場合、アクションは実行されません。
      パラメータ:
      driver - DriverManagerに登録される新しいJDBCドライバ
      da - DriverManager#deregisterDriverが呼び出されたときに使用するDriverAction実装
      例外:
      SQLException - データベース・アクセス・エラーが発生した場合
      NullPointerException - driverがnullの場合
      導入されたバージョン:
      1.8
    • deregisterDriver

      public static void deregisterDriver(Driver driver) throws SQLException
      DriverManagerの登録済ドライバ・リストから、指定されたドライバを削除します。

      削除するドライバとしてnull値が指定された場合、アクションは実行されません。

      セキュリティ・マネージャが存在する場合、そのcheckPermissionメソッドがSQLPermission("deregisterDriver")アクセス権で最初に呼び出され、呼び出し元がJDBCドライバの登録抹消を許可されているかどうかが検査されます。

      指定されたドライバが登録済ドライバ・リストにない場合、アクションは実行されません。 ドライバが見つからなかった場合、そのドライバは登録済ドライバ・リストから削除されます。

      JDBCドライバの登録時にDriverActionインスタンスが指定された場合は、登録済ドライバ・リストからドライバが削除される前に、その登録解除メソッドが呼び出されます。

      パラメータ:
      driver - 削除するJDBCドライバ
      例外:
      SQLException - データベース・アクセス・エラーが発生した場合
      SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドがドライバを登録解除するためのアクセス権を拒否した場合。
      関連項目:
    • getDrivers

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

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

      戻り値:
      呼出し元のクラス・ローダーによってロードされるJDBCドライバのリスト
      関連項目:
    • drivers

      public static Stream<Driver> drivers()
      現在の呼び出し元がアクセスしている、現在ロードされているすべてのJDBCドライバを含むストリームを取得します。
      戻り値:
      呼び出し元クラス・ローダーによってロードされたJDBCドライバのストリーム
      導入されたバージョン:
      9
    • setLoginTimeout

      public static void setLoginTimeout(int seconds)
      識別された後のドライバがデータベースに接続しようとするときの最大待機時間(秒単位)を設定します。
      パラメータ:
      seconds - ログイン時間制限(秒単位)。ゼロは制限なし
      関連項目:
    • getLoginTimeout

      public static int getLoginTimeout()
      データベースにログインしているときに、ドライバが待つことのできる最長の時間を秒数で取得します。
      戻り値:
      ドライバのログインのタイム・リミット(秒単位)
      関連項目:
    • setLogStream

      @Deprecated(since="1.2") public static void setLogStream(PrintStream out)
      非推奨。
      setLogWriterを使用
      DriverManagerおよびすべてのドライバが使用する、ログおよびトレースのPrintStreamを設定します。

      セキュリティ・マネージャが存在する場合、そのcheckPermissionメソッドが最初にSQLPermission("setLog")アクセス許可で呼び出され、呼び出し元がsetLogStreamを呼び出すことが許可されているかどうかがチェックされます。

      パラメータ:
      out - ログおよびトレースの新しいPrintStream。無効にする場合はnullに設定する
      例外:
      SecurityException - セキュリティ・マネージャが存在し、checkPermissionメソッドがログ・ストリームを設定する許可を拒否した場合。
      関連項目:
    • getLogStream

      @Deprecated(since="1.2") public static PrintStream getLogStream()
      非推奨。
      getLogWriterを使用
      DriverManagerおよびすべてのドライバが使用する、ログおよびトレースのPrintStreamを取得します。
      戻り値:
      ログおよびトレースのPrintStream。無効な場合はnull
      関連項目:
    • println

      public static void println(String message)
      現在のJDBCログ・ストリームにメッセージを印刷します。
      パラメータ:
      message - ログ・メッセージまたはトレース・メッセージ