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 :
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!