7
votes

Différence entre importation et classe.forname en Java

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.


5 commentaires

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


7 Réponses :


10
votes
===> 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

6 commentaires

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 () lance ClassNotFoundException . 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/...



0
votes

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
}


1 commentaires

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.




0
votes

de docs Classe # FORNAME

Class t = Class.forName("java.lang.Thread")


0 commentaires

1
votes

classe.forname 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.

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 ..

espérons que cela aide ..


0 commentaires

0
votes

Puisque vous avez ajouté des balises JDBC, je répondrai en termes de cela.

comme Hussain Akhtar wahid a dit class.forname ("nom"); appelle des initialisateurs statiques

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 drivermananger fera le travail pour vous.

initialisateur statique en Java. mysql.jdbc.driver calss xxx

ce que vous faites en appelant class.forname ("com.mysql.jdbc.driver"); est enregistré Drivermananger à dire que je veux accéder à la base de données MySQL.

snippet source


0 commentaires

1
votes
  1. importation
    Lorsqu'une classe étant utilisée dans son nom abrégé est sur le point de charger JVM, la phrase «importation» indique au chargeur de classe où trouver la classe. Donc, "importer" ne charge aucune classe, il définit simplement l'emplacement où sont des classes.
  2. classe.forname ()
    Chargez et initialisez une classe immédiatement dans JVM.

    BY BY: 3 façons de charger une classe.
    1) Utilisation de "Nouveau" mot clé (classe de chargement + classe d'initialisation + instance nouvelle)
    chien D = nouveau chien ();
    2) Utilisation "Classe.forname ()" (classe de chargement + classe d'initialisation)
    Classe Dogclass = Classe.Forname ("Dog")
    3) Utilisation de "Classloader.LoadClass ()" (classe de charge)


0 commentaires