web-dev-qa-db-fra.com

Différences de pool de connexion, jdbc et jndi

J'ai besoin de savoir si ma compréhension de ce qui précède est correcte.

Dans un pool de connexions, vous définissez plusieurs connexions à l'aide de Java.sql.Datasource.

Dans jdbc, nous spécifions directement l'URL de connexion et Oracle.jdbc.driver.OracleDriver et c'est toujours une connexion, où une autre demande doit attendre jusqu'à ce que la connexion soit terminée.

Et avec JNDI, c'est similaire à direct jdbc où nous référons le paramètre jdbc via un nom, afin que nous puissions spécifier l'URL de connexion et d'autres paramètres dans le serveur d'applications et ne pas les avoir liés à l'application, non?

18
Harshana

Eh bien, ce sont deux choses différentes.

JDBC est Java API de connectivité de base de données, tandis que JNDI est Java API de nommage et d'interface d'annuaire).

L'essentiel ici est que dans un répertoire JNDI vous stockez en fait une source de données JDBC, vous utilisez donc simplement JDBC pour obtenir une connexion via une recherche JNDI.

En bref: JDBC est un domaine de base de données, JNDI vous permet de stocker des objets dans un contexte virtuel (l'annuaire) qui peut être local, distant (les détails d'implémentation n'ont généralement pas d'importance).

Vous accédez à ce contexte via des noms, obtenir des objets stockés, c'est bien de partager des choses entre différents modules.

Les serveurs d'applications ont généralement un contexte JNDI pour partager des objets globaux entre différentes applications, les pooleurs de connexions sont l'un des exemples les plus clairs de la raison pour laquelle le partage via JNDI est bon (définir 1 pool de connexion, partager entre plusieurs applications Web).

20
BigMike

Je sais que tous les acronymes sont intimidants lorsque vous avez appris Java pour la première fois, mais habituez-vous, passez beaucoup de temps à lire .. en particulier les ressources officielles de Java/Oracle

4
gerrytan