2 votes

Java Mysql : ClassNotFoundException -> Impossible de trouver le pilote

Duplicata possible :
ClassNotFoundException com.mysql.jdbc.Driver

J'ai inclus le mysql-connector-java-5.1.16-bin.jar dans ma bibliothèque Eclipse, ce code est basé sur des tutoriels que j'ai trouvés sur le web car je n'ai jamais utilisé MySQL en Java auparavant. Malheureusement, je ne vois pas où j'utilise la fonction mysql-connector-java-5.1.16-bin.jar et la console affiche Could not find driver. c'est-à-dire la ClassNotFoundException est lancé. Voyez-vous le problème (probablement évident) que je ne vois pas ?

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.sql.Timestamp;

public class MysqlConnector {

    private static MysqlConnector instance = null;
    private static Connection conn = null;

    private static String dbHost = "localhost";
    private static String dbPort = "3306";
    private static String database = "sample";
    private static String dbUser = "root";
    private static String dbPassword = "";

    public MysqlConnector() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":"
                    + dbPort + "/" + database + "?" + "user=" + dbUser + "&"
                    + "password=" + dbPassword);
        } catch (ClassNotFoundException e) {
            System.out.println("Could not find driver."); //TODO LOGGER
        } catch (SQLException e) {
            System.out.println("Could not connect to database."); //TODO LOGGER
        }
    }

    public static MysqlConnector getInstance()
    {
        if(instance == null)
            instance = new MysqlConnector();
        return instance;
    }

    public boolean validateApiKey(String apikey)
    {
        if(conn != null)
        {
            Statement query;
            try {
                query = conn.createStatement();

                String sql = "SELECT startdate, expiration, active " + "FROM apikeys "
                        + "WHERE apikey = '" + apikey +"'";
                ResultSet result = query.executeQuery(sql);

                if(result.getFetchSize()>0 && result.getInt("active")==1){
                    Date now = new Date();
                    Date startdate = result.getDate("startdate");
                    Date expirationdate = result.getDate("expiration");
                    if(now.before(expirationdate) && now.after(startdate)){
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
        return false;
    }

}

3voto

Bozho Points 273663

Right click your project > Build Path > Add libraries et ajoutez le fichier jar.

Assurez-vous également qu'il se trouve sur votre chemin d'exécution. Right click the main class > run as > run configurations > Classpath

0voto

Cesar Cavazos Points 221

La seule chose que je vois est que vous devez ajouter la bibliothèque du MySQL Connector dans votre projet et pas seulement dans votre bibliothèque Eclipse.

0voto

mfirry Points 544

Comment fonctionne ce système ?

vous instanciez une classe à partir de ce jar lorsque vous faites

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

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Class.html#forName%28java.lang.String%29

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X