Import et classe.Les noms chargent le fichier de classe. Lorsque je fais un exemple d'importation de données MySQL dans le fichier JSP, il est nécessaire d'importer la classe de pilotes via la classe.Lorsque Importez le pilote JDBC via l'instruction IMPORT, il ne peut pas prendre de données de MySQL sur Tomcat Server. p>
7 Réponses :
===> Driver class when loaded by Class.forName("") , executes its static block , which published the driver ==> Simply importing the Driver class wont execute the static block and thus your Driver will not be published for connection objects to be created
Quand j'ai testé mon programme Java Revillage MySQL avec une classe principale. À ce moment-là, la classe.Les nom n'est pas nécessaire, j'importe simplement la classe de pilotes JDBC par relevé d'importation. Class.forname n'est nécessaire que lorsque vous appelez une page JSP dans Tomcat Server.
Pouvez-vous poster votre code à partir de votre programme Core Java, comment vous avez créé un objet de connexion?
Voir cette Link
J'ai importé comme importer com.mysql.jdbc.Driver; Cela est fonctionné lorsque j'ai testé avec un programme de classe principale Java.
En outre, classe.forname () code> lance
ClassNotFoundException code>. Vous pouvez donc utiliser cela pour vérifier si la classe existe, au moment de l'exécution. Dunno si cela est en réalité utile de vous!
Voici un tutoriel bien expliqué sur YouTube: YouTube.com/... a>
Une instruction "Importation" dans Java vous permet d'accéder à une classe ou de ressource que vous êtes importants.
Par exemple: P>
import my.package.Utils; public static void main(String[] args) { Utils.doStuff(); //I can do this because I have access to Utils in my import }
Quand j'ai testé mon programme Java Revillage MySQL avec une classe principale. À ce moment-là, la classe.Les nom n'est pas nécessaire, j'importe simplement la classe de pilotes JDBC par relevé d'importation. Class.forname n'est nécessaire que lorsque vous appelez une page JSP dans Tomcat Server.
Une classe de pilote est chargée et donc automatiquement enregistrée auprès du DriverManager en appelant la méthode Class.forname. Cela charte explicitement la classe de pilotes. Étant donné que cela ne dépend de aucune configuration externe, ce mode de chargement d'un pilote est recommandé pour utiliser le cadre de DriverManager. Le code suivant charge la classe ACME.DB.Driver: si acme.db.Driver a été écrit de sorte que le chargement de la création d'une instance soit créée et appelle également drivermanager.registerdriver avec qui instance comme paramètre (comme il devrait le faire), il se trouve dans la liste des pilotes de DriverManager et disponible pour la création d'une connexion. P> ramassé de Cette répond. Lisez-le pour des informations détaillées. Mais je suppose que
Et la raison pour laquelle "cela ne peut pas prendre de données de mysql", car vous ne pouvez éventuellement pas retourner référence à la variable concernant la classe de pilotes JDBC .. p>
espérons que cela aide .. p> classe.forname code> vous permet d'utiliser la classe de pilotes sans avoir une importation explicite pour votre classe. Cela vous permet de construire le projet sans avoir à avoir le pilote JDBC dans votre classe de classe. p>
Puisque vous avez ajouté des balises JDBC, je répondrai en termes de cela.
comme Hussain Akhtar wahid a dit Java gère de nombreux pilotes SQL via DriverManager, au lieu d'écrire un code pour chaque pilote, il vous suffira d'enregistrer ce pilote et initialisateur statique en Java. mysql.jdbc.driver calss p> ce que vous faites en appelant snippet source p> p> class.forname ("nom"); code> appelle des initialisateurs statiques p>
drivermananger code> fera le travail pour vous. P>
class.forname ("com.mysql.jdbc.driver"); code> est enregistré Drivermananger à dire que je veux accéder à la base de données MySQL. P>
1) Utilisation de "Nouveau" mot clé (classe de chargement + classe d'initialisation + instance nouvelle)
chien D = nouveau chien (); code>
2) Utilisation "Classe.forname ()" (classe de chargement + classe d'initialisation)
Classe Dogclass = Classe.Forname ("Dog") Code>
3) Utilisation de "Classloader.LoadClass ()" (classe de charge) p>
De Java 7, vous n'avez même pas à cela. Il sera automatiquement ramassé de votre chemin de classe.
J'ai utilisé Java 6. Veuillez raconter à propos de la différence ..
Si je comprends bien, les importations sont traitées lors de la compilation, tandis que Class.Forname est traitée au moment de l'exécution.
Pourriez-vous expliquer brièvement par exemple parce que je suis en phase de départ de JDBC.
Peut-être que cela pourrait aider xyzws.com/javafaq/what-does -Classforname-méthode-do / 17