クラス DriverManagerDataSource

実装されたすべてのインターフェース:
WrapperSECommonDataSourceSEDataSourceSE
既知の直属サブクラス
SingleConnectionDataSource

public class DriverManagerDataSource extends AbstractDriverBasedDataSource
標準の JDBC DataSourceSE インターフェースの単純な実装、Bean プロパティを介してプレーンな古い JDBC DriverManagerSE を構成し、すべての getConnection 呼び出しから新しい ConnectionSE を返します。

注: このクラスは実際の接続プールではありません。実際には Connections をプールしません。本格的な接続プールの単純な置き換えとして機能し、同じ標準インターフェースを実装しますが、呼び出しごとに新しい接続を作成します。

対応する ApplicationContext の DataSource Bean として、または単純な JNDI 環境と組み合わせて、Jakarta EE コンテナーの外部のテスト環境またはスタンドアロン環境に役立ちます。プールを想定した Connection.close() 呼び出しは接続を閉じるだけなので、データソース対応の永続化コードはすべて機能するはずです。

NOTE: OSGi などの特別なクラスローディング環境内では、JDBC DriverManager の一般的なクラスローディングの課題が直接ドライバーを使用することで解決されるため、このクラスは SimpleDriverDataSource に効果的に置き換えられます(これは SimpleDriverDataSource の動作です)。

Jakarta EE コンテナーでは、コンテナーによって提供される JNDI DataSource を使用することをお勧めします。このような DataSource は、このクラスのようなローカル DataSource Bean とのシームレスな切り替えのために、JndiObjectFactoryBean 経由で Spring ApplicationContext 内の DataSource Bean として公開できます。テストの場合は、Simple-JNDI などのサードパーティの完全なソリューションを使用してモック JNDI 環境をセットアップするか、Bean 定義をローカル DataSource に切り替えることができます (これはより簡単なので推奨されます)。

この DriverManagerDataSource クラスは、もともと Apache Commons DBCP および C3P0 と一緒に設計されたもので、ローカルリソース設定用の構成プロパティを持つ Bean スタイルの BasicDataSource/ComboPooledDataSource クラスを備えています。最新の JDBC 接続プールの場合は、代わりに HikariCP を検討し、対応する HikariDataSource インスタンスをアプリケーションに公開します。

導入:
14.03.2003
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • DriverManagerDataSource

      public DriverManagerDataSource()
      Bean スタイルの構成のコンストラクター。
    • DriverManagerDataSource

      public DriverManagerDataSource(StringSE url)
      JDBC アクセス用のユーザー名またはパスワードを指定せずに、指定された JDBC URL で新しい DriverManagerDataSource を作成します。
      パラメーター:
      url - DriverManager へのアクセスに使用する JDBC URL
      関連事項:
    • DriverManagerDataSource

      public DriverManagerDataSource(StringSE url, StringSE username, StringSE password)
      指定された標準 DriverManager パラメーターで新しい DriverManagerDataSource を作成します。
      パラメーター:
      url - DriverManager へのアクセスに使用する JDBC URL
      username - DriverManager へのアクセスに使用する JDBC ユーザー名
      password - DriverManager へのアクセスに使用する JDBC パスワード
      関連事項:
    • DriverManagerDataSource

      public DriverManagerDataSource(StringSE url, PropertiesSE conProps)
      JDBC アクセス用のユーザー名またはパスワードを指定せずに、指定された JDBC URL で新しい DriverManagerDataSource を作成します。
      パラメーター:
      url - DriverManager へのアクセスに使用する JDBC URL
      conProps - JDBC 接続プロパティ
      関連事項:
  • メソッドの詳細

    • setDriverClassName

      public void setDriverClassName(StringSE driverClassName)
      JDBC ドライバーのクラス名を設定します。このドライバーは、起動時に初期化され、JDK の DriverManager に登録されます。

      注: DriverManagerDataSource は、主に事前登録された JDBC ドライバーへのアクセスを目的としています。新しいドライバーを登録する必要がある場合は、代わりに SimpleDriverDataSource の使用を検討してください。または、この DataSource をインスタンス化する前に、JDBC ドライバーを自分で初期化することを検討してください。"driverClassName" プロパティは、下位互換性のため、Commons DBCP とこの DataSource 間の移行のために、主に保持されます。

      関連事項:
    • getConnectionFromDriver

      protected ConnectionSE getConnectionFromDriver(PropertiesSE props) throws SQLExceptionSE
      クラスからコピーされた説明: AbstractDriverBasedDataSource
      指定されたプロパティを使用して接続を取得します。

      サブクラスによって実装されるテンプレートメソッド。

      次で指定:
      クラス AbstractDriverBasedDataSourcegetConnectionFromDriver 
      パラメーター:
      props - 結合された接続プロパティ
      戻り値:
      取得した接続
      例外:
      SQLExceptionSE - 失敗した場合
    • getConnectionFromDriverManager

      protected ConnectionSE getConnectionFromDriverManager(StringSE url, PropertiesSE props) throws SQLExceptionSE
      DriverManager から厄介な静的を使用して接続を取得すると、protected メソッドに抽出され、簡単な単体テストが可能になります。
      例外:
      SQLExceptionSE
      関連事項: