Maison > base de données > tutoriel mysql > Class.forName() pour l'enregistrement du pilote JDBC est-il toujours nécessaire ?

Class.forName() pour l'enregistrement du pilote JDBC est-il toujours nécessaire ?

Patricia Arquette
Libérer: 2025-01-05 04:09:39
original
396 Les gens l'ont consulté

Is Class.forName() for JDBC Driver Registration Still Necessary?

Enregistrement des pilotes JDBC : dépréciation de Class.forName()

La question soulève des inquiétudes concernant l'exigence obsolète d'enregistrer les pilotes JDBC à l'aide de Class.forName (), comme suggéré dans une discussion précédente sur Stack Overflow. Il indique que depuis Java 6, DriverManager utilise la propriété système « jdbc.drivers » pour récupérer le pilote approprié, éliminant ainsi le besoin de cette étape. Cependant, l'affiche rencontre une valeur nulle lors de l'impression de la propriété.

Réponse :

Le problème ne vient pas de la propriété "jdbc.drivers" mais plutôt d'un concept introduit dans Java 6 et JDBC4 connu sous le nom de « fournisseur de services ». Ici, les implémentations d'interfaces connues sont automatiquement détectées par la JVM lors du démarrage. Les pilotes JDBC conformes exploitent ce mécanisme, permettant au DriverManager de les enregistrer sans effort. Par conséquent, Class.forName() devient redondant uniquement lorsque les pilotes prennent en charge cette fonctionnalité.

L'enregistrement du service est déclenché par la présence d'un répertoire "services" dans le répertoire META-INF du fichier JAR du pilote. Ce répertoire doit contenir un fichier texte portant le nom de l'interface implémentée (par exemple, "java.sql.Driver" pour les pilotes JDBC) et précisant la classe d'implémentation.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal