Maison > base de données > tutoriel mysql > Class.forName() est-il nécessaire pour l'enregistrement du pilote JDBC dans Java 6 et versions ultérieures ?

Class.forName() est-il nécessaire pour l'enregistrement du pilote JDBC dans Java 6 et versions ultérieures ?

DDD
Libérer: 2025-01-04 12:56:40
original
633 Les gens l'ont consulté

Is Class.forName() Necessary for JDBC Driver Registration in Java 6 and Later?

Enregistrement du pilote DriverManager : utilisation de Class.forName() dans Java 6 et au-delà

Question :

Depuis Java 6, Class.forName(JDBC_DRIVER) n'est-il plus requis pour l'enregistrement du pilote JDBC ? Bien que la documentation suggère que la propriété système jdbc.drivers doit fournir le chemin du pilote, l'impression de cette propriété renvoie null. Pourquoi l'application fonctionne-t-elle toujours correctement ?

Réponse :

L'élimination de Class.forName() dans Java 6 (et JDBC4) n'a aucun rapport avec les jdbc.drivers propriété. Java a introduit un concept de « fournisseur de services » selon lequel les pilotes conformes peuvent s'auto-enregistrer auprès de la JVM au démarrage.

Inscription du fournisseur de services :

Pilotes qui adhèrent à cet endroit standard un répertoire de services dans leur fichier JAR dans le répertoire META-INF. Ce répertoire contient un fichier texte nommé java.sql.Driver, qui spécifie la classe d'implémentation.

Détection des pilotes :

La JVM détecte et enregistre automatiquement les pilotes implémentant cette interface . Cela élimine le besoin d'enregistrement explicite à l'aide de Class.forName() pour les pilotes conformes.

Fonctionnalité de l'application :

Dans l'exemple fourni, l'application peut toujours fonctionner correctement malgré la valeur de retour nulle pour System.getProperty("jdbc.drivers") si :

  • Le pilote utilisé prend en charge le fournisseur de services inscription.
  • Le fichier JAR du conducteur comprend le répertoire des services requis.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal