2014-05-03 4 views
1

Je tente de me connecter à la base de données, mais j'obtiens cette erreur.Erreur de connexion Java JDBC MySQL: ClassNotFoundException

c'est le code

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class JDBCInsertValues { 

    public static void main(String[] args) throws Exception { 

     Class.forName("com.mysqljdbc.Driver"); 
     Connection conn = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/Drivers"); 

     PreparedStatement statement = conn.prepareStatement("SELECT * fom employee"); 
     ResultSet result = statement.executeQuery(); 
     while(result.next()){ 
      System.out.println(result.getString(1)+ " "+ result.getString(2)); 
     } 
    } 
} 

et c'est l'erreur im obtenir.

course:

Exception in thread "main" java.lang.ClassNotFoundException: com.mysqljdbc.Driver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:259) 
    at JDBCInsertValues.main(JDBCInsertValues.java:14) 

Java Result: 1 
BUILD SUCCESSFUL (total time: 0 seconds) 

j'ai pilote situé sur la bibliothèque de projets.

Répondre

0

le nom du pilote semble erroné

essayer

Class.forName("com.mysql.jdbc.Driver").newInstance(); 

au lieu de

Class.forName("com.mysqljdbc.Driver"); 
+0

qui a fonctionné, mais je suppose que maintenant je suis obtenir une autre erreur qui est Exception dans le thread « principal » java.sql.SQLException: Accès refusé pour l'utilisateur « root » @ « localhost » (en utilisant mot de passe: OUI) c'est le code que j'utilise pour la connexion Connexion conn = DriverManager.getConnection ( "jdbc: mysql: // localhost: 3306/Drivers", "root", "root"); une idée pourquoi? – user3594235

+0

... ou simplement omettre complètement l'instruction 'Class.forName'. Il n'est généralement pas nécessaire ces jours-ci. (Les versions raisonnablement récentes de Java utilisent un mécanisme différent pour charger les pilotes JDBC.) –

+0

@ user3594235 Si cette réponse résout votre question initiale, vous devez [accepter] (http://meta.stackexchange.com/a/5235/238021) et puis [posez une nouvelle question] (http://stackoverflow.com/questions/ask) si vous avez maintenant un problème différent à résoudre. –

0

Je pense que vous utilisez ANT. Si c'est le problème peut être vous avez manqué d'inclure la bibliothèque mysql dans build.xml

0

J'ai également trouvé le même problème dans mon code. Dans votre code, vous devez faire les choses suivantes:

  1. changer la première ligne de code dans la méthode principale pour Class.forName (« com.mysql.jdbc.Driver »)
  2. extrait Maintenant le connecteur/J MySQL fichier comme mysql-connector-java-5.1.32.zip.
  3. Vous aurez le fichier jar mysql-connector-java-5.1.32-bin.jar dans le dossier mysql-connector-java-5.1.32 extrait à l'étape 2
  4. Maintenant à droite lécher sur votre projet, allez à Construire Chemin >> Configurer le chemin de construction >> onglet Bibliothèques >> Ajouter des JAR externes >> sélectionner mysql-connector-java-5.1.32-bin.jar à partir du dossier mysql-connector-java-5.1.32
  5. Rafraîchir et lancer votre projet. J'espère que ces mesures permettront de résoudre votre problème