Je lis la spécification Java JDBC (vr.4) et j'ai rencontré cette déclaration:
DataSource - cette interface a été introduite dans l'API de package optionnel JDBC 2.0. Il est préférable à DriverManager car il permet aux détails sur la source de données sous-jacente d'être transparents pour l'application
Ce que j'essaie de comprendre, c'est quelle est la différence entre a Connection
et a DataSource
, et pourquoi il existe. Je veux dire, le bloc ci-dessus indique que les détails sur une source de données sont transparents pour l'application, mais l'externalisation des propriétés de la base de données telles que le nom d'utilisateur, le mot de passe, l'url, etc. dans un fichier de propriétés, puis l'utilisation de DriverManager ne fonctionneraient-elles pas de la même manière?
Et l' DataSource
interface est-elle créée uniquement pour avoir un moyen commun de renvoyer des connexions qui peuvent être regroupées, etc.? Dans Java EE, le serveur d'applications implémente-t-il cette interface et les applications déployées pour avoir une référence à une source de données au lieu d'une connexion?
la source
If you are going to program a connection pool then you have to use DriverManager, otherwise go with Datasource.
- avez-vous inversé les noms?DriverManager
DataSource
la source
Le code ci-dessous montre deux façons d'obtenir la connexion.
Il n'est pas nécessaire de connaître l'URL si
mySqlDataSource
cette ligne est commentée.la source
Nous pouvons obtenir une connexion en utilisant une source de données comme suit. Utilisez la connexion pour effectuer toute requête de base de données.
la source
DataSource
Les objets peuvent fournir un regroupement de connexions et des transactions distribuées, vous devrez donc peut-être utiliserDataSource
si vous avez besoin de l'une de ces fonctionnalités ou des deux.la source