100 votes

Pourquoi utiliser une DataSource au lieu d'un DriverManager ?

Je suis en train de lire la spécification Java JDBC (vr. 4) et je suis tombé sur cette déclaration :

DataSource - cette interface a été introduite dans l'API de paquet optionnelle JDBC 2.0. Package API. Elle est préférée à DriverManager parce qu'elle permet les détails sur la source de données sous-jacente d'être transparents pour l'application application

Ce que j'essaie de comprendre, c'est quelle est la différence entre une Connection et un DataSource et pourquoi il existe. Je veux dire, le bloc ci-dessus dit que les détails d'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 fonctionnerait-elle pas de la même manière ?

Et est-ce que le DataSource créée uniquement pour avoir un moyen commun de renvoyer les connexions qui peuvent être mises en commun, etc. Dans Java EE, le serveur d'application implémente-t-il cette interface et les applications déployées ont-elles une référence à une source de données au lieu d'une connexion ?

0voto

Venkat Alugolu Points 1

Vous avez vu comme

Connection con = DriverManager.getConnection(url,"username", "pwd");

Au lieu de cela, écrivez comme suit

Context ic = new InitialContext();
DataSource ds = ic.lookup("java:comp/env/jdbc/myDB"); 
Connection con = ds.getConnection();
DataSource ds = (DataSource) org.apache.derby.jdbc.ClientDataSource() ds.setPort(1527);
ds.setHost("localhost");
ds.setUser("APP") ds.setPassword("APP");
Connection con = ds.getConnection();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X