public class DriverManagerDataSource extends AbstractDriverBasedDataSource
DataSourceSE インターフェースの単純な実装、Bean プロパティを介してプレーンな古い JDBC DriverManagerSE を構成し、すべての getConnection 呼び出しから新しい ConnectionSE を返します。注: このクラスは実際の接続プールではありません。実際には Connections をプールしません。本格的な接続プールの単純な置き換えとして機能し、同じ標準インターフェースを実装しますが、呼び出しごとに新しい接続を作成します。
対応する ApplicationContext の DataSource Bean として、または単純な JNDI 環境と組み合わせて、Java EE コンテナーの外部のテスト環境またはスタンドアロン環境に役立ちます。プールを想定した Connection.close() 呼び出しは接続を閉じるだけなので、データソース対応の永続化コードはすべて機能するはずです。
NOTE: OSGi などの特別なクラスローディング環境内では、JDBC DriverManager の一般的なクラスローディングの課題が直接ドライバーを使用することで解決されるため、このクラスは SimpleDriverDataSource に効果的に置き換えられます(これは SimpleDriverDataSource の動作です)。
Java EE コンテナーでは、コンテナーが提供する JNDI DataSource を使用することをお勧めします。このような DataSource は、JndiObjectFactoryBean を介して Spring ApplicationContext の DataSource Bean として公開でき、このクラスのようにローカル DataSource Bean との間でシームレスに切り替えられます。テストの場合、Spring の SimpleNamingContextBuilder を介してモック JNDI 環境をセットアップするか、Bean 定義をローカル DataSource に切り替えることができます(よりシンプルで推奨されます)。
この DriverManagerDataSource クラスは、もともと Apache Commons DBCP および C3P0 と一緒に設計されたもので、ローカルリソース設定用の構成プロパティを持つ Bean スタイルの BasicDataSource/ComboPooledDataSource クラスを備えています。最新の JDBC 接続プールの場合は、代わりに HikariCP を検討し、対応する HikariDataSource インスタンスをアプリケーションに公開します。
SimpleDriverDataSourcelogger| コンストラクターと説明 |
|---|
DriverManagerDataSource()Bean スタイルの構成のコンストラクター。 |
DriverManagerDataSource(StringSE url)JDBC アクセス用のユーザー名またはパスワードを指定せずに、指定された JDBC URL で新しい DriverManagerDataSource を作成します。 |
DriverManagerDataSource(StringSE url, PropertiesSE conProps)JDBC アクセス用のユーザー名またはパスワードを指定せずに、指定された JDBC URL で新しい DriverManagerDataSource を作成します。 |
DriverManagerDataSource(StringSE url, StringSE username, StringSE password) 指定された標準 DriverManager パラメーターで新しい DriverManagerDataSource を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected ConnectionSE | getConnectionFromDriver(PropertiesSE props) 指定されたプロパティを使用して接続を取得します。 |
protected ConnectionSE | getConnectionFromDriverManager(StringSE url, PropertiesSE props)DriverManager から厄介な静的を使用して接続を取得すると、protected メソッドに抽出され、簡単な単体テストが可能になります。 |
void | setDriverClassName(StringSE driverClassName)JDBC ドライバーのクラス名を設定します。 |
getCatalog, getConnection, getConnection, getConnectionFromDriver, getConnectionProperties, getPassword, getSchema, getUrl, getUsername, setCatalog, setConnectionProperties, setPassword, setSchema, setUrl, setUsernamegetLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrapcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic DriverManagerDataSource()
public DriverManagerDataSource(StringSE url)
url - DriverManager へのアクセスに使用する JDBC URLDriverManager.getConnection(String)SEpublic DriverManagerDataSource(StringSE url, StringSE username, StringSE password)
url - DriverManager へのアクセスに使用する JDBC URLusername - DriverManager へのアクセスに使用する JDBC ユーザー名 password - DriverManager へのアクセスに使用する JDBC パスワード DriverManager.getConnection(String, String, String)SEpublic DriverManagerDataSource(StringSE url, PropertiesSE conProps)
url - DriverManager へのアクセスに使用する JDBC URLconProps - JDBC 接続プロパティ DriverManager.getConnection(String)SEpublic void setDriverClassName(StringSE driverClassName)
注意: DriverManagerDataSource は、主に事前登録された JDBC ドライバーにアクセスするためのものです。新しいドライバーを登録する必要がある場合は、代わりに SimpleDriverDataSource の使用を検討してください。または、この DataSource をインスタンス化する前に、JDBC ドライバーを自分で初期化することを検討してください。"driverClassName" プロパティは、主に下位互換性のため、Commons DBCP とこの DataSource 間の移行のために保持されています。
protected ConnectionSE getConnectionFromDriver(PropertiesSE props) throws SQLExceptionSE
AbstractDriverBasedDataSourceサブクラスによって実装されるテンプレートメソッド。
AbstractDriverBasedDataSource の getConnectionFromDriver props - 結合された接続プロパティ SQLExceptionSE - 失敗した場合 protected ConnectionSE getConnectionFromDriverManager(StringSE url, PropertiesSE props) throws SQLExceptionSE