Les Allergies
Alimentaires
Posez votre question Signaler

[JAVA] probleme driver MySQL avec netbeans [Résolu]

Sieg Hart 65Messages postés 5 février 2007Date d'inscription - Dernière réponse le 11 nov. 2011 à 19:59
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.");
        }
    }
}
Lire la suite 

[JAVA] probleme driver MySQL avec netbeans »

27 réponses
Réponse
+5
moins plus
Copie le driver dans C:\Sun\SDK\jdk\jre\lib\ext également.
Ajouter un commentaire
Réponse
+1
moins plus
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, @++
Ajouter un commentaire
Réponse
+1
moins plus
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".
Ajouter un commentaire
Réponse
+1
moins plus
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
eta - 11 nov. 2011 à 19:59
bonjour,je sais pas trops essaie ceci String url="jdbc:mysql://localhost:3306/"+projet;
Ajouter un commentaire
Réponse
+0
moins plus
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.

fahd - 29 mars 2011 à 02:09
merci
Ali - 6 avril 2011 à 19:13
merci mon ami
youssef bmw - 1 oct. 2011 à 15:08
merci .. l3ezz
Ajouter un commentaire
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Réponse
+0
moins plus
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);



}

}
Ajouter un commentaire
Réponse
+0
moins plus
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
tOonyOo - 1 avril 2008 à 09:03
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.
Ajouter un commentaire
Réponse
+0
moins plus
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");
Ajouter un commentaire
Réponse
+0
moins plus
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
esrayoruk - 1 mai 2008 à 20:32
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Moi jai aucun probleme ,jai reussis à me connecter, t as possé une question juste avant ce pour repondre a ca , merci comme meme :)
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 ^^.
Ajouter un commentaire
Réponse
+0
moins plus
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. ^^
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
houssem - 18 mars 2011 à 01:14
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 :))
Ajouter un commentaire
Réponse
+0
moins plus
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();
}
}
}
Ajouter un commentaire
Réponse
+0
moins plus
Copiez les fichiers jar Driver Mysql% à% JAVA_HOME \ lib \
Ajouter un commentaire
Ce document intitulé « [JAVA] probleme driver MySQL avec netbeans » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?