DataSource インターフェイスで、ユーザー名とパスワードのパラメーターを使用する場合と使用しない場合の、接続を取得する 2 つの方法を見つけました。
接続 getConnection() 接続 getConnection(文字列ユーザー名、文字列パスワード)
サーバー (tomcat) から JNDI リソースとして公開された接続プールを使用したいと述べましたが、2 つの方法の違いは何ですか?
DataSource インターフェイスで、ユーザー名とパスワードのパラメーターを使用する場合と使用しない場合の、接続を取得する 2 つの方法を見つけました。
接続 getConnection() 接続 getConnection(文字列ユーザー名、文字列パスワード)
サーバー (tomcat) から JNDI リソースとして公開された接続プールを使用したいと述べましたが、2 つの方法の違いは何ですか?
DataSource
実装に応じて、これら 2 つのメソッドは異なることを行います。1 つ目は、引数なしでConnection
、プールから を取得し、 の作成時に構成された資格情報で構成DataSource
されます。新しいクレデンシャルを受け入れる 2 つ目は、DataSource
それらのクレデンシャルを使用して開かれた から接続を取得するか、それらのクレデンシャルを使用して新しい接続を作成するConnection
か、JDBC ドライバーがサポートしている場合は、既存のConnection
接続を取得してクレデンシャルを切り替えます。 (これが本当に可能かどうかはわかりません)。
残念ながら、JavaDoc (http://docs.oracle.com/javase/7/docs/api/javax/sql/DataSource.html) では、一方が他方を呼び出す理由についての洞察は得られません。明らかな理由は、全体に構成されている資格情報以外の資格情報を使用して接続したいからですDataSource
。
DataSource
Tomcat が設定するデフォルトBasicDataSource
は Apache からのものです。この DataSource はこのメソッドcommons-dbcp
をサポートしていません。getConnection(String username, String password)
Tomcat の最近のバージョンには が付属しています。これは、要素に属性を設定した場合に、この代替メカニズムをサポートtomcat-pool
する代替 DataSource 実装です(現在のドキュメントではサポートしていないと書かれていますが)。alternateUsernameAllowed="true"
<Resource>
Tomcat プールのドキュメント: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html