0

なぜドライバーマネージャークラスがデータベースへの接続を取得するために多くのオーバーロードされたメソッドを提供するのか疑問に思っていました。それらのいくつかは

getConnection(String url, String user, String password) 
getConnection(String url, Properties info)

その他はhttp://docs.oracle.com/javase/1.4.2/docs/api/java/sql/DriverManager.htmlで見つけることができます

いずれの場合もデータベースに接続する前に、同じ情報セットを用意する必要がありますが、メソッドごとにgetConnection()その情報にアクセスする方法が異なります。私は(私が感じる限り)特定のものを好むことなくそれらすべてを使用している人々を見てきました。

私の質問は、コーディングスタイルに関して、一方の使用が他方よりも優先される可能性があるため、何らかの優先順位があるかどうかです。そうでない場合、このオーバーロードは冗長ではありませんか?

4

2 に答える 2

1

技術的には、getConnection(String url, Properties info)プログラムでドライバーのプロパティを収集すると、はるかにクリーンになります。当初の考えは、GUIを使用してドライバーを構成し、インターフェイスのgetPropertyInfoメソッドを使用して、GUIDriverでの選択と構成のために可能なすべてのプロパティを収集するというものでした。

次に、接続を確立するために、(ベース)JDBC URLと、.propertiesすべてのドライバープロパティ(またはプロパティオブジェクトの(シリアル化された)コピー)を含むファイルを保存する必要があります。誰かがそれをそのように使用したことがあるかどうかはわかりません。

そのため、元のアイデアが実際に普及することはなく(AFAIK)、人々はすべてのプロパティを含むJDBC URLをURLの一部として保存し、ユーザー名とパスワードを別々に持つことを好みました。したがって、URLにユーザー名とパスワードを含めるgetConnection(String url, String user, String password)か、含めることもできgetConnection(String url)ます。

JDBC 2(標準拡張)の導入により、DataSourceDriverManagerを廃止し、最終的には常にDataSourcesを使用するように削除するという話もあったと思います(JavaBeansスタイルの構成を使用していたため)。それは実際には起こりませんでしたが。

于 2012-06-02T08:32:51.117 に答える
0

ユーザー名とパスワードのみを入力する必要がある場合は、最初の形式が強く入力され、単純に...短いため、最初の形式が適しています。

高レベルAPIで説明されていない追加のパラメーターが必要な場合は、後者を使用する必要があります。

于 2012-05-31T19:58:39.560 に答える