[JAVA] probleme driver MySQL avec netbeans

[Résolu/Fermé]
Signaler
Messages postés
67
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
16 septembre 2009
-
 frkfrk -
Bonjour,

je developpe un programe en Java qui permet d'executer une requete MySQL, j'utilise netbeans pour programer et compiler.
j'ai copier "mysql-connector-java-5.0.5-bin.jar" dans "C:\Program Files\Java\jre1.6.0\lib\ext" mais quand je lance le programme il ne trouve pas le driver :s
Faut t'il configurer quelque chose?
Merci.

Configuration:
Windows XP sp2
NetBeans IDE 5.5
JRE 1.6.0
JDK 1.6.0

SqlRequete.java
// librairie pour utiliser les classes pour la base de données
import java.sql.*; 
import java.io.*;
import java.util.*; 

public class SqlRequete
{
    public SqlRequete() 
    {
    }

    public static void main(String[] args)
    {
        Connection connection;
        BaseDeDonnee basededonnee = new BaseDeDonnee();
    }
}

class BaseDeDonnee
{
    Connection connection = null;

    public BaseDeDonnee()
    {
        connexion();
        affichage();
        fin_connexion();
    }

    // Connexion à la base de donnees
    public void connexion () 
    {
        try
        {
            // Chargement des drivers SQL
            System.out.println("\n------------------------");
            System.out.println("Connexion au driver JDBC.");
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            System.out.println("Driver com.mysql.jdbc.Driver chargé.");
        }
        catch (ClassNotFoundException a)
        {
            System.out.println ("Driver non trouve.");
        }
        catch (Exception b)
        {      
            System.out.println ("Problème sur chargement de driver JDBC.");			
        }

        try
        {		
            // Etablissement de la connexion avec la base
            connection = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=");
            System.out.println("Connexion a la base établie.");
            System.out.println("------------------------\n");
        }
        catch (SQLException c)
        {	
            System.out.println ("Connexion refuse ou base inconnu.");
        }
        catch (Exception d)
        {
            System.out.println ("Problème sur connexion.");		
        }
    }
    public void affichage()
    {
        //ResultSet rs   = null;
        try
        {
            // Exécution des requêtes
            //Statement stmt = connection.createStatement();
            //String requete = null;
            //requete = "INSERT INTO `table` ( `champ` ) VALUES ( 'EGG' )";           
            //requete = "SELECT * FROM `table` ORDER BY `champ` ASC LIMIT 0 , 30";
            //rs = stmt.executeQuery(requete);
            
            Statement  stmt = connection.createStatement() ;
            String queryString = "INSERT INTO `table` ( `champ` ) VALUES ( 'EGG' )";
            int update = stmt.executeUpdate(queryString);
            System.out.println (update);
            //while (rs.next())
           // {
                // Affichage les resultats de la requete SQL
                //System.out.println("Champ :     "+rs.getString(1));
                //System.out.println("Prenom : "+rs.getString(2));
                //System.out.println("Adresse : "+rs.getString(3));
                //System.out.println("");
           // }
        }
        catch (Exception d)
        {
            System.out.println ("Problème la requete.");		
        }
    }
    public void fin_connexion()
    {
        try
        {
            // Fermeture de la connexion
            connection.close();
            System.out.println("\n------------------------");
            System.out.println ("Fermeture de connexion.");
            System.out.println("------------------------\n");
        }
        catch (Exception d)
        {
            System.out.println ("Problème sur la fermeture de connexion.");
        }
    }
}
A voir également:

20 réponses

Copie le driver dans C:\Sun\SDK\jdk\jre\lib\ext également.
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
40
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
10 août 2010
13
Je suis en train de developper une application ayant le meme but, voici la partie de code permettant de se connecter a une base de donnees pour effectuer une requete:

// STEP 1: get a connexion to the database:
Statement stmt;
ResultSet rs;
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/mabase";
Connection con = DriverManager.getConnection(url,"user", "password");
stmt = con.createStatement();
// STEP 2: perform operations on the database:
rs = stmt.executeQuery("SELECT * FROM table;");
// STEP 3: close the connexion to the database:
con.close();


Ce code fonctionne chez moi (le driver est charge), et me renvoie le resultat dans rs.
Bien sur le tout est dans un try-catch pour recuperer les eventuels messages d'erreur.

J'espere que ca pourra t'aider, @++

salut, tous ces progs marche bien
mais il faut just ajouter le driver ou .jar (de mysql) a votre projet netbeans dans "libraries->Add Jar/Folder".
Bonjour , je sais pas trop ou mettre la base de donnée ,jai le pilote qui faut ,



CA C:\Program Files\EasyPHP1-8\www\projet EGAL A CA "jdbc:mysql://localhost//"+ projet; ? svp



String url = "jdbc:mysql://localhost//"+ projet;


jai un probleme à ce niveau la DriverManager.getConnection(url,"root",""); , jai besoi votre aide ,svp
bonjour,je sais pas trops essaie ceci String url="jdbc:mysql://localhost:3306/"+projet;
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
Essai d'inclure la librairie qui contient les connector mysql dans ton projet.
Je ne connais plus trop NetBeans puisque travaillant sans Eclipse, mais ca doit être similaire. Tu dois pouvoir configurer les librairies à incorporer dans le CLASSPATH de ton projet. Donc trouve comme atteindre ce panneau de configuration et inclu le jar mysql de manière à ce qu'il soit connu de ton projet.

Salut,

Pour inclure le .jar dans ton projet NetBeans, tu fait un click droit sur le dossier lib de ton projet puis ajouter un JAR.

Ca devrait fonctionner.

Pierro.
merci .. l3ezz
Messages postés
40
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
10 août 2010
13
Rebonjour,

Le code que j'ai indique dans le second message de ce topic fonctionne parfaitement quand je le compile/execute a partir de JCreator (alors que je n'ai rien configure de particulier), mais j'ai tente de l'executer "manuellement" dans la console et j'obtiens systematiquement une erreur au niveau du chargement du pilote mysql.
(c'est la ligne "Class.forName("com.mysql.jdbc.Driver");" qui pose probleme)

Sauriez vous quelle est la solution pour pouvoir executer mon programme a partir de la console ? Dois-je ajouter une variable d'environnement, ajouter des options a la ligne de commande, ou autre ?

Merci beaucoup !
slt, merci beaucoupe pour les information indqiuer la, j ai rsuiisi a ajouter le conector sur mon projet grace a vous, en fait pour ajouter le connector sur un prjet netbeenes sur netbeenes lui meme clique droit sur ton projet puis tu fait proporities apres tu choisis libraries, apres tu fait ajouter (ADD JAR folder) et tu le donne le chemein ou se trouve ton conector java ou il y un fichier .jar et tu fait ok et sa va marcher voila le coode qu j ai utliser et sa marche

public static void main(String[] args) throws SQLException {
Statement stmt;
ResultSet rs;
try{
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/tonbase";
Connection con = DriverManager.getConnection(url,"root", "ton mode passe si tu en as");
stmt = con.createStatement();
// STEP 2: perform operations on the database:
rs = stmt.executeQuery("SELECT * FROM cordonnes;");
while(rs.next()){
System.out.println(rs.getString(1)+rs.getString(2)+rs.getString(3)+rs.getString(4)+rs.getString(5)+rs.getString(6));

}
// STEP 3: close the connexion to the database:
con.close();
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);



}

}
Messages postés
17
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
15 août 2008

j'ai executé ton code ,le chargement du driver ,la connexion a la base cava maisil me renvoi une erreur de requete de l'insersion ,verife la requete de l'insertion
Bonjour moi j'ai ce code là et j'ai eu aussi le probleme du driver mais lorsque je compile (avec netbeans) je n'ai rien (meme pas de message d'erreur :s)
public static void main(String[] args){
// TODO code application logic here
{
Connection connexion = null;
String url = "jdbc:mysql://[serveur]/[base]";
String userName = "login";
String password = "mdp";

try {

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

connexion = DriverManager.getConnection(url, userName, password);

Statement statement = connexion.createStatement();

System.out.println("Connecté");

statement.executeQuery("SELECT Couple FROM Resultats");

ResultSet datas = statement.getResultSet();

String couple = datas.getString(1);
System.out.println(datas + "est sélectionné");

datas.close ( ); // close result set
statement.close ( ); // close statement

}

catch (Exception e)
{
System.err.println ("Cannot connect to server"+e);
}
finally
{
if (connexion != null)
{
try
{
connexion.close ( );
// System.out.println ("Disconnected"); /* for debugging */
}
catch (Exception e) { /* ignore close errors */ }
}
}

}
}
}



J'ai bien lu vos messages et je voit pas d'où vient le pblem...
Merci de votre aide.
package ConnectionBd;

import java.sql.*;
//comprend tous les objet et méthode permettant d'utiliser une base de donnée

/**classe qui permet de se connecter à la base de donnée fait partie du package ConnectionBd */

public class CtrlBD {
/**objet de connection à la BD */
private static Connection m_con;
/**objet permettant d'effectuer des requêtes*/
private static Statement requete;
/**variable permettant de savoir si on est connecté à une BD*/
private static boolean connected = false;

/**Fct de connection à la BD, valide la connection en mettant la variable connected à vrai.*/

public static void openConnection(String source)
{
try {
Class.forName("com.mysql.jdbc.Driver");
//chargement du pilote jdbc

}
catch (ClassNotFoundException classe)
{


System.out.println("pas su charger le pilote");

}



if (source != null) //si la source existe
{
String url = "jdbc:mysql://localhost:3306/"+ source;

try {

m_con = DriverManager.getConnection(url,"root","");


requete = m_con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

//on peut parcourir le résultat dans les 2 sens, insensible aux chgmts d'autrui



//on peut modifier ce r ésultat pour ensuite reporter ces modifs ds la table (updateRow)
m_con.setAutoCommit(false);

// c'est nous qui décidons quand on exécute réellement la requête
connected = true;

} catch (SQLException e)
{
System.out.println("erreur ici");

Utilitaire.Fichier.enregistreErreur(e.toString());
}


}

else
Utilitaire.Fichier.enregistreErreur("Source non renseignee!!\n");
}


/**retourne le résultat de la requète*/
public static ResultSet selectQuery(String query) {
ResultSet m_rs = null;
//récupére les données en provenance de l'objet Statement

if (connected)

try {
m_rs = requete.executeQuery(query);

}

catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());

Utilitaire.Fichier.enregistreErreur(e.toString());
}


else

Utilitaire.Fichier.enregistreErreur("Objet non connecte! Echec fct.");

return m_rs;
}

/**Ferme la connection. Indispensable pour que les mises à jour soient effectuées !!*/
public static void closeConnection()
{
try {
m_con.commit();
m_con.close();

} catch (SQLException e)
{
Utilitaire.Fichier.enregistreErreur(e.toString());
}
}


/**Retourne l'état de l'objet:connecté/déconnecté */
public static boolean isConnected() {
return connected;
}


/**Permet d'exécuter une requêtes d'action.*/
public static boolean actionQuery(String query) {
boolean b = false;

try {
requete.executeUpdate(query);
b = true;
m_con.commit(); // force à exécuter la requête sur la BD

} catch (SQLException e) { Utilitaire.Fichier.enregistreErreur(e.toString() + " \tEchec Maj");
}
System.out.print(b);
return b;

}
}





/////////////////////////////////////appel dans une autre classe la classe connection


CtrlBD.openConnection("projet"); //projet est le nom de ma base de donnée
//ouvre la connection

if (CtrlBD.isConnected() == false)
JOptionPane.showMessageDialog(null, "Pas de connection à la Base de données");
je trouve un pb ac la connexion a ma base de donner , netbeans me retourne "unable to add connexion cannot establish a connexion to 'jdbc:mysql://localhost:3306/messagerie'using com.mysql.jdbc.Driver (acces refusé pr l'utilisateur 'root'@'@'localhost' mot de passe :OUI);
aidez moi svp
en fait je sais pas si cest a cause de tn mot de passe " OUI", tu as un pb avec la connection

m_con = DriverManager.getConnection(url,"root",""); ==>ca cest par defaut

le pilote que j utilise
mysql-connector-java-5[1].0.8-bin, jespere que je tai aide
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
Bonjour,

esra, simo et esrayoruk,

Si vous ne pouvez pas vous connecter à votre base de données et que le message que vous avez stipule qu'il faut un mot de passe pour le user 'root', c'est simplement parce que le user 'root' sur votre base de données est configuré avec un mot de passe.
Or, dans l'instruction suivante :
m_con = DriverManager.getConnection(url,"root","");

On voit bien qu'aucun mot de passe n'est passé en paramètre.

Il faut donc que vous alliez voir le mot de passe root sur le panneau d'administration de votre base de données, ou alors que créer carrément un nouveau user en - cette fois - notant quelque part le mot de passe pour ne pas le perdre ;)

Ensuite il ne restera plus qu'à modifier vos paramètres de connexion dans le programme java et tester de nouveau tout ça.
Moi jai aucun probleme ,jai reussis à me connecter, t as possé une question juste avant ce pour repondre a ca , merci comme meme :)
merci bcp pour votre aide, g trouvé ou etai le pb , le pb residai ds le mot de passe et le loin , paske g crée ma basede donnée a l'aide de easy php et lui il est confuguré pour un login ="root" et aucun mot de passe, en plus de sa l'url de ma base donnée il fallai le changer oci paske g utilisai easy php. merci tt le monde
Bonjour,

J'ai l'exception "Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
at java.lang.Class.forName0(Native Method)" à cause de mon Class.ForName("com.mysql.jdbc.Driver"), et je ne comprend pas pourquoi.

Quelqu'un aurait une solution? Merci ^^.
Ah c'est bon j'ai trouvé la solution!!!
En fait il y avait un ancien .jar qui était dans mes librairies et c'est pour ça que je n'arrivait pas à me connecter à ma base MySQL.
Leçon: NE JAMAIS METTRE 2 FICHIERS JAR DU MEME TYPE DANS LA MEME LIBRAIRIE. ^^
Essayes d’insérer la ligne Class.forName("com.mysql.jdbc.Driver"); dans init()

Comment ceci
/** Initializes the applet NewFace */
public void init() {
try {
Class.forName("com.mysql.jdbc.Driver");
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
Sa doit marcher
Messages postés
24
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
26 août 2009

import java.sql.*;

class TestSql {

public static void main(String[] args) {

String pilote = "com.mysql.jdbc.Driver";

try {

Class.forName(pilote);

Connection connexion = DriverManager.getConnection(
"jdbc:mysql://localhost//*votre base*/", "root", "");

Statement instruction = connexion.createStatement();


ResultSet resultat = instruction
.executeQuery("SELECT * FROM /*votre table*/");
while (resultat.next()) {

System.out.println("---------------------------");


}
} catch (Exception e) {

System.out.println("echec pilote : " + e);
}

}
}
si vous avez tjrs des problemes de connexion a une table mysql a partir de java
essayez ce code il marche impecablement il suffit d ajouter il suffit d ajouter le mysql-connector-java-5.0.5-bin.jar dans le lib \ ext de votre distribution (eclipse ,netbeans ou autre)
allé
ciao ciao ciao
svp je suis debutant,j'ai ajouté le .jar comme vous l'avez indiquer,ensuite ou je dois mettre ce code source??? ouvrir une nouvelle class main?? ou comment....
je serais tres reconnaissant si vous m'aidiez :))
oh tu sais le probleme n'est pas vraiment facile, mais tu peux utiliser ce fragment de code que
j'utilise moi même.
et bin voila la repense:

Code : Java import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Enumeration;
import java.util.Properties;

public class Connect {

public static void main(String[] args) {

try {
Class.forName("org.postgresql.Driver");
System.out.println("DRIVER OK ! ");

String url = "jdbc:postgresql://localhost:5432/Ecole";
String user = "postgres";
String passwd = "postgres";

Connection conn = DriverManager.getConnection(url, user, passwd);
System.out.println("Connection effective !");

} catch (Exception e) {
e.printStackTrace();
}
}
}
Messages postés
1
Date d'inscription
mardi 29 mars 2011
Statut
Membre
Dernière intervention
29 mars 2011

Copiez les fichiers jar Driver Mysql% à% JAVA_HOME \ lib \
Je confirme; il suffit juste d'ajouter une variable environnement "CLASSPATH" et specifier le chemin d'acces au ".jar" mysql de manière à ce qu'il soit connu dans le projet.