Enregistrement du pilote JDBC en Java : clarification du besoin de Class.forName(JDBC_DRIVER)
Il a été signalé que Java version 6 et ultérieure élimine la nécessité d'enregistrer les pilotes JDBC à l'aide de la méthode Class.forName(JDBC_DRIVER) en raison de l'utilisation du Propriété système "jdbc.drivers". Cependant, certains développeurs ont rencontré un scénario dans lequel la récupération de la valeur de "jdbc.drivers" renvoie null.
Cette divergence soulève la question : pourquoi les applications Java utilisant JDBC fonctionnent-elles correctement malgré l'absence d'un pilote explicitement enregistré ?
La réponse réside dans une fonctionnalité introduite dans Java 6 et JDBC 4 connue sous le nom de « fournisseurs de services ». Ce mécanisme permet à la JVM de détecter les implémentations des interfaces spécifiées lors du démarrage. Les pilotes JDBC conformes à ce concept peuvent être automatiquement enregistrés par DriverManager, éliminant ainsi le besoin de Class.forName().
Le processus d'enregistrement du service repose sur la présence d'un répertoire « services » dans le fichier JAR du pilote. dans le répertoire META-INF. Ce répertoire doit contenir un fichier texte nommant l'interface implémentée (java.sql.Driver pour les pilotes JDBC) et la classe d'implémentation correspondante.
En adhérant au concept de fournisseur de services, les pilotes JDBC peuvent être enregistrés automatiquement, éliminant ainsi le besoin d'appels explicites à Class.forName(). Cependant, cela ne s'applique qu'aux pilotes compatibles avec le mécanisme du fournisseur de services.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!