2010-07-26 3 views
1

Je reçois l'erreur: java.sql.SQLException: Aucun pilote appropriéConnexion à MySql sur Mac: Pas d'erreur de pilote approprié

J'ai importé le fichier .jar est disponible ici http://dev.mysql.com/downloads/mirror.php?id=13598

I J'utilise Eclipse.

Je me connecte à la DB avec ce code:

package dao; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class DBCon { 

    private static final String host = "jdbc:mysql://localhost"; 
    private static final String port = "3306"; 
    private static final String db = "mydb"; 
//  private static final String user = "root"; 
//  private static final String pwd = ""; 
    private static final String user = "myusername"; 
    private static final String pwd = "mypwd"; 

    public Connection getCon() { 
     Connection con = null; 
     try { 
      String url = host + ":" + port + "/" + db; 

      con = DriverManager.getConnection(url, user, pwd); 

     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return con; 
    } 
} 

J'interroge alors le DB avec ce code:

package dao; 

import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.sql.Connection; 
import model.ClassPojo; 

public class ARCSDao { 

public ArrayList<ClassPojo> viewClasses() throws SQLException{ 
    ArrayList<ClassPojo> classList = new ArrayList<ClassPojo>(); 

    DBCon db = new DBCon(); 
    Connection con = db.getCon(); 
    Statement stmt; 
    ResultSet rs; 
    stmt = con.createStatement(); 
    rs = stmt.executeQuery("SELECT * FROM classes"); 
    while(rs.next()){ 
      ClassPojo aClass = new ClassPojo(); 
      rs.getString("class_name"); 
      rs.getString("class_uri"); 
      classList.add(aClass); 
    }   
    return classList; 
    } 
} 
+0

Je faisais du dev sur une boîte de Windows et je n'avais aucun problème, je le fais maintenant sur un mac - Je ne sais pas si cela cause des problèmes. Je ne vois pas comment cela fonctionne puisque c'est Java et j'ai fait du codage non-db sur cette machine. – Ankur

+0

Le serveur mysql est-il dans la même boîte? Alors, que diriez-vous de vérifier la version de mysql que vous utilisez? – naikus

+0

Non, ce n'est pas sur la même case, j'utilise en fait un serveur mysql distant utilisant la redirection de port, mais je vais essayer de vérifier quelle est la version de mysql. – Ankur

Répondre

2

Ajouter

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

avant

con = DriverManager.getConnection(url, user, pwd); 

si cela ne fonctionne pas, vérifiez que le pilote jdbc (fichier jar) est inclus dans votre chemin de classe

+0

Merci au moins, je reçois une erreur différente maintenant; com.mysql.jdbc.CommunicationsException: Échec de la liaison de communication - Je vais y travailler. – Ankur

Questions connexes