Ich lese die Java JDBC-Spezifikation (vr. 4) und bin auf diese Aussage gestoßen:
DataSource - Diese Schnittstelle wurde in die optionale JDBC 2.0-Paket-API eingeführt. Es wird gegenüber DriverManager bevorzugt, da Details zur zugrunde liegenden Datenquelle für die Anwendung transparent sind
Ich versuche zu verstehen, was der Unterschied zwischen a Connection
und a DataSource
ist und warum er existiert. Ich meine, der obige Block besagt, dass die Details zu einer Datenquelle für die Anwendung transparent sind, aber würden wir Datenbankeigenschaften wie Benutzername, Kennwort, URL usw. nicht in einer Eigenschaftendatei auslagern und dann DriverManager auf die gleiche Weise verwenden?
Und wird die DataSource
Schnittstelle nur erstellt, um eine gemeinsame Methode zum Zurückgeben von Verbindungen zu haben, die gepoolt werden können usw.? Implementiert der Anwendungsserver in Java EE diese Schnittstelle und die bereitgestellten Anwendungen, um anstelle einer Verbindung einen Verweis auf eine Datenquelle zu erhalten?
quelle
If you are going to program a connection pool then you have to use DriverManager, otherwise go with Datasource.
- Hast du die Namen umgedreht?DriverManager
DataSource
quelle
Der folgende Code zeigt zwei Möglichkeiten zum Herstellen einer Verbindung.
Es ist nicht erforderlich, die URL zu kennen,
mySqlDataSource
wenn diese Zeile kommentiert wird.quelle
Wir können die Verbindung über eine Datenquelle wie folgt herstellen. Verwenden Sie die Verbindung, um eine Datenbankabfrage durchzuführen.
quelle
DataSource
Objekte können Verbindungspooling und verteilte Transaktionen bereitstellen. Daher müssen Sie diese möglicherweise verwenden,DataSource
wenn Sie eine oder beide dieser Funktionen benötigen.quelle