Sieg Hart
Messages postés68Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention16 septembre 2009
-
30 avril 2007 à 14:48
frkfrk -
28 août 2013 à 18:35
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.");
}
}
}
the_moon
Messages postés40Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention10 août 201013 30 avril 2007 à 16:03
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.
kij_82
Messages postés4089Date d'inscriptionjeudi 7 avril 2005StatutContributeurDernière intervention30 septembre 2013857 30 avril 2007 à 17:24
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.
the_moon
Messages postés40Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention10 août 201013 9 mai 2007 à 15:04
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 ?
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);
manau1983
Messages postés17Date d'inscriptionmercredi 20 février 2008StatutMembreDernière intervention15 août 2008 3 mars 2008 à 12:07
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";
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;
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
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();
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
kij_82
Messages postés4089Date d'inscriptionjeudi 7 avril 2005StatutContributeurDernière intervention30 septembre 2013857 2 mai 2008 à 13:05
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 :
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.
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
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.
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. ^^
}
}
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 :))
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.