public class DriverManagerDataSource extends AbstractDriverBasedDataSource
DataSource
SE インターフェースの単純な実装、Bean プロパティを介してプレーンな古い JDBC DriverManager
SE を構成し、すべての getConnection
呼び出しから新しい Connection
SE を返します。注: このクラスは実際の接続プールではありません。実際には Connections をプールしません。本格的な接続プールの単純な置き換えとして機能し、同じ標準インターフェースを実装しますが、呼び出しごとに新しい接続を作成します。
対応する ApplicationContext の DataSource Bean として、または単純な JNDI 環境と組み合わせて、Java EE コンテナーの外部のテスト環境またはスタンドアロン環境に役立ちます。プールを想定した Connection.close()
呼び出しは単純に接続を閉じるため、DataSource 対応の永続化コードはすべて機能するはずです。
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
インスタンスをアプリケーションに公開します。
SimpleDriverDataSource
logger
コンストラクターと説明 |
---|
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, setUsername
getLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrap
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public 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