Maison >base de données >tutoriel mysql >Class.forName(JDBC_DRIVER) est-il vraiment obsolète depuis Java 6 ?
Class.forName (JDBC_DRIVER) n'est plus requis dans Java 6
L'article traite de la prétendue élimination de la nécessité d'enregistrer un pilote JDBC utilisant Class.forName(JDBC_DRIVER) depuis Java 6. Cette hypothèse découle de la conviction que DriverManager s'appuie sur le système propriété "jdbc.drivers" pour localiser le pilote approprié.
Cependant, l'impression de la valeur de System.getProperty("jdbc.drivers") renvoie null, laissant les utilisateurs perplexes quant à la raison pour laquelle leurs applications continuent de fonctionner correctement.
Réponse
La fonctionnalité apparente de l'application malgré l'absence du La propriété système "jdbc.drivers" n'est pas liée à cette propriété. Java 6 a introduit le concept de fournisseurs de services, qui permet à la JVM de détecter automatiquement les implémentations d'interfaces connues au démarrage.
Les pilotes JDBC qui adhèrent à ce mécanisme sont automatiquement enregistrés par DriverManager, ce qui rend Class.forName() inutile. . Cependant, cela ne s'applique que si le pilote prend en charge l'enregistrement du fournisseur de services.
Pour lancer l'enregistrement du service, le pilote doit inclure un répertoire nommé « services » dans le répertoire META-INF dans son fichier JAR. Ce répertoire doit contenir un fichier texte nommé "java.sql.Driver" qui spécifie la classe d'implémentation du pilote JDBC.
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!