Maison >base de données >tutoriel mysql >`Class.forName(JDBC_DRIVER)` est-il obsolète dans Java moderne ?

`Class.forName(JDBC_DRIVER)` est-il obsolète dans Java moderne ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 12:05:41429parcourir

Is `Class.forName(JDBC_DRIVER)` Obsolete in Modern Java?

Class.forName(JDBC_DRIVER) - Est-il obsolète ?

Malgré les affirmations selon lesquelles Java 6 déconseille l'utilisation de Class.forName(JDBC_DRIVER) , il a été observé que certaines applications fonctionnent toujours correctement sans enregistrer explicitement le pilote JDBC. Ce comportement a soulevé des questions sur la nécessité de cette méthode.

Plonger dans la controverse

Lorsque System.getProperty("jdbc.drivers") renvoie null, cela indique que la méthode des propriétés système ne joue aucun rôle dans l'enregistrement du pilote. Au lieu de cela, le casse-tête réside dans l'introduction du concept de « fournisseur de services » dans Java 6 et JDBC4.

Mécanisme de fournisseur de services

Dans ce mécanisme, les implémentations d'interfaces connues peut être détecté par la JVM lors du démarrage. Les pilotes conformes à ce concept sont automatiquement enregistrés par DriverManager, éliminant ainsi le besoin de Class.forName(). Cependant, cela ne s'applique qu'aux pilotes prenant en charge ce mécanisme.

Le rôle de l'annuaire des services

L'enregistrement du service est lancé lorsqu'un répertoire de services existe dans le fichier JAR du pilote. , dans le répertoire META-INF. Au sein de ce répertoire, un fichier texte doit être présent avec le nom de l'interface implémentée (java.sql.Driver pour les pilotes JDBC) et la classe d'implémentation.

Conclusion

La méthode Class.forName(JDBC_DRIVER) peut toujours être requise si le pilote JDBC ne prend pas en charge le mécanisme du fournisseur de services. Cependant, pour les conducteurs qui le font, l'enregistrement explicite n'est plus nécessaire, car DriverManager les détecte et les charge automatiquement.

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!

Déclaration:
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