Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1548 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  connexion et echange de donnée avec base mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

connexion et echange de donnée avec base mysql

n°1261832
white-rabb​it
oOps !
Posté le 08-12-2005 à 15:37:42  profilanswer
 

Salut
Je viens de créer une base mysql sur mon poste avec les propriétés suivantes:
Serveur: localhost
Base: dbtest
Table: user
User: admin
Pass: admin1
 
j'ai manuellement via phpMyAdmin ajouté 2 utilisateurs dans ma table user.
la table user possède 4 champs text avec nom prenom pseudo ville.
 
maintenant mon but est de me connecter à cette table via un programme java.
pas d'interface graphique, je souhaite juste faire des essais rapides.  
 
voici le code que j'utilise pour me connecter à la base et y envoyer une donnée placée manuellement dans le code.
 

Code :
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4. import java.sql.Statement;
  5. public class Main {
  6.    
  7.     public static void main(String[] args) {
  8.     String url = "jdbc:mysql://localhost";
  9.     String user = "admin";
  10.     String password = "admin1";
  11.     try {
  12. Connection con = DriverManager.getConnection( url, user, password);
  13.     } catch (SQLException ex) {
  14.         System.out.println("Echec connection!!" );
  15.     }
  16.    
  17.     Statement stmt = con.createStatement();
  18.     String q1 = "INSERT into test values ('AAA', 'BBB', 'CCC', 'DDD')";
  19.     String q2 = "SELECT * from test";
  20.     stmt.executeUpdate(q1);
  21.     stmt.executeQuery(q2);
  22.    
  23.     ResultSet rs1 = stmt.executeUpdate(q1);
  24.     int nbmodif = stmt.executeQuery(q2);
  25.    
  26.     con.close();
  27.     }
  28. }


 
Sauf que là j'ai des erreurs qui sont montrées par netbeans:
ligne 18 : can't find symbol, symbol variable con
ligne 26 : can't find symbol, symbol class ResultSet
ligne 27 : incompatible types, found java.sql.ResultSet, required int
ligne 29 : can't find symbol, symbol variable con
 
Vous avez une idée?  
Merci

mood
Publicité
Posté le 08-12-2005 à 15:37:42  profilanswer
 

n°1261859
vb11
Posté le 08-12-2005 à 15:54:25  profilanswer
 

Toi c'est ton premier programme java ! ( je me trompe ?? )
l 18 : déclare ta connection en dehors du try
l 26 : manque l'import
l 27 : je me rappelle plus, et quand je me rappelle plus, je vais voir la javadoc...
l 29 : idem l 18.

n°1261875
white-rabb​it
oOps !
Posté le 08-12-2005 à 16:03:37  profilanswer
 

c'est mon premier essai avec une base de donnée.

n°1261911
white-rabb​it
oOps !
Posté le 08-12-2005 à 16:39:42  profilanswer
 

Je viens de faire un nouvel essai en simplifiant au maximum mon code:
 

Code :
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4. import java.sql.Statement;
  5. public class Main {
  6.    
  7.     public static void main(String[] args) {
  8.     String url = "localhost";
  9.     String user = "admin";
  10.     String password = "admin1";
  11.    
  12.     String q1 = "INSERT into test values ('AAA', 'BBB', 'CCC', 'DDD')";
  13.     String q2 = "SELECT * from test";
  14.    
  15.     try {
  16.     Connection con = DriverManager.getConnection( url, user, password);
  17.     Statement stmt = con.createStatement();
  18.    
  19.     stmt.executeUpdate(q1);
  20.     stmt.executeQuery(q2);
  21.    
  22.     } catch (SQLException ex) {
  23.         System.out.println("Echec connection!!" );
  24.     }
  25.    
  26.     }
  27. }


 
Cette fois il ne me fait pas d'erreur à la compilation, mais à l'execution il m'affiche Echec connexion.
J'utilise NetBeans, j'ai lu sur des forums que parfois il faut installer un driver:
j'ai telecharger celui ci: mysql-connector-java-3.0.17-ga  mais je ne sais pas quoi en faire  :??:

Message cité 1 fois
Message édité par white-rabbit le 08-12-2005 à 16:53:21

---------------
>> Portfolio: www.MyDeclic.com
n°1261932
Bidem
Posté le 08-12-2005 à 17:11:31  profilanswer
 

white-rabbit a écrit :


J'utilise NetBeans, j'ai lu sur des forums que parfois il faut installer un driver:
j'ai telecharger celui ci: mysql-connector-java-3.0.17-ga  mais je ne sais pas quoi en faire  :??:


 
Une lecture de la doc s'impose.
 
Allez courage, je t'ai même trouvé un tutoriel en français : JDBC Tutoriel

n°1261941
white-rabb​it
oOps !
Posté le 08-12-2005 à 17:20:17  profilanswer
 

merci, je vais lire ça ;)


---------------
>> Portfolio: www.MyDeclic.com
n°1261966
white-rabb​it
oOps !
Posté le 08-12-2005 à 17:44:55  profilanswer
 

alors en fait, j'ai un ptit doute concernant les outils que j'ai installé.
je me demande si j'ai bien tout mis.
 
j'ai down ici  
http://developers.sun.com/prodtech/devtools/index.html -> NetBeans
https://jsecom15.sun.com/ECom/EComA [...] 9FD7925BC8 --> le jdk 1.5.0
 
C'est le dernier jdk, donc je suppose que JDBC est inclu dedans. Donc l'etape 2 suivante est ok normalement
 

Code :
  1. 2. Installez un pilote sur votre machine
  2. Votre pilote devrait contenir des instructions d'installation. Certains pilote JDBC ont été écrit pour des SGBD (Systeme de Gestion de Base de Donnée) spécifiques, en général l'installation consiste à copier le pilote sur votre machine, aucune configuration n'est nécessaire.
  3. 3. Installez votre SGBD (si nécessaire)
  4. Si vous n'avez pas de SGBD installé sur votre machine, suivez les instructions
  5. fournis avec. La plupart des utilisateurs possèdent déjà un SGBD installé et
  6. travaillent avec une base de données déjà établie.


 
etape 3 installer SGBD
ça je sais pas de quoi il s'agit.. s'agit il du serveur de bdd?
 
dans ce cas j'ai down easyphp1.8 j'ai une BDD qui tourne bien.
je fais tourner un forum phpBB dessus.
 
Je ne pense pas manquer d'outil donc. mais je prefere etre sur avant de m'y mettre.


---------------
>> Portfolio: www.MyDeclic.com
n°1261978
sircam
I Like Trains
Posté le 08-12-2005 à 18:00:36  profilanswer
 

System.out.println("Echec connection!!" );


Faut revoir les bases... Si tu ne log pas l'exception, comment savoir ce qu'il s'est passé ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1262013
white-rabb​it
oOps !
Posté le 08-12-2005 à 18:41:20  profilanswer
 

fallait que je mette System.out.println(ex);
 
je test ça dès demain.
merci pour la remarque sircam


---------------
>> Portfolio: www.MyDeclic.com
n°1262075
souk
Tourist
Posté le 08-12-2005 à 20:05:50  profilanswer
 

white-rabbit a écrit :

fallait que je mette System.out.println(ex);
 
je test ça dès demain.
merci pour la remarque sircam


non, ex.printStackTrace(); pour voir tout les details de l'exception :o :o
 
as tu mis le jar qui contient le driver mysql dans ton classpath ?
(si ta reponse a cette question est "c'est quoi le classpath?" passe faire un tour par le topic debutant/topic classpath, si la reponse a ta question est "qu'est-ce qu'un driver jdbc?" c'est que tu n'as pas lu le tuto qui t'a ete donner dans ce topic-ci, si ta reponse est non, alors declare le jar dans ton classpath, si c'est oui, la on va pouvoir avancer)

mood
Publicité
Posté le 08-12-2005 à 20:05:50  profilanswer
 

n°1262361
white-rabb​it
oOps !
Posté le 09-12-2005 à 10:23:19  profilanswer
 

salut souk
effectivement je n'avais pas copié le jar et l'erreur renvoyée à l'execution etait:  

Code :
  1. run:
  2. java.sql.SQLException: No suitable driver


 
Je suis allé voir le topic debutant et le topic dédié au classpath et j'ai copié les jar de la librairie jdbc dans le repertoire lib de mon jdk, et ajouté au classpath de Netbeans.
 
http://www.image-dream.com/membre/up/mini_fastupload/1be8cc5f2e935f1a83842a46c5a8c650.JPG
 
Mais bref, toujours la meme erreur. je pensais que c'etait parce que j'avais pas reboot, mais pb se poursuit encore..
Une idée de ce que j'ai pu oublier?
 
j'vais essayer avec eclipse à tout hasard pour voir si c'est pas moi qui a merdé sous netbeans
 
edit: pareil sous eclipse en ayant ajouté tous les jars de ma lib jdbc.
 
pour info, voici les 3 *.jar que j'ai ajouté:
- mysql-connector-java-3.0.17-ga-bin.jar
- jdbc2_0-stdext.jar
- jta-spec1_0_1.jar


Message édité par white-rabbit le 09-12-2005 à 10:30:02

---------------
>> Portfolio: www.MyDeclic.com
n°1262375
souk
Tourist
Posté le 09-12-2005 à 10:34:00  profilanswer
 

bon, as tu lu le tuto qu'on t'as donné ? notament la partie 3.1 intitulée "3.1 Charger les pilotes." ? [:itm] tout est expliqué dans ce tuto ... et un conseil, ne copie pas les jar dans le repertoire lib de ton JDK, c'est une mauvaise habitude, il suffit de les declarer dans le classpath

n°1262444
white-rabb​it
oOps !
Posté le 09-12-2005 à 11:35:49  profilanswer
 

c'est bon j'ai reussi !!!
je vais manipuler un peu tout ça maintenant.
merci bcp pour votre aide et patience !


---------------
>> Portfolio: www.MyDeclic.com
n°1264692
white-rabb​it
oOps !
Posté le 12-12-2005 à 16:53:29  profilanswer
 

c'est bon j'ai pu arriver au but que je m'etais donner.
je peux maintenant ecrire lire, faire des recherches, tri, reset, dans ma base de donnée utilisateur.
je suis ravi.
merci beaucoup à tout ceux qui m'ont aidé.
 
 
maintenant mon but est de faire tourner sur plusieurs machines ce programme java, en se connectant sur la base mysql d'un serveur sur le reseau.
pour commencer j'ai juste essayé de changer dans mon code l'url localhost par l'ip de ma machine.  
 
voici le resultat que j'ai lorsque j'execute sur ma propre machine, là où tourne le serveur mysql
 

Code :
  1. Exception in thread "main" book.db.DBException: Erreur SQL : com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
  2. ** BEGIN NESTED EXCEPTION **
  3. java.net.SocketException
  4. MESSAGE: java.net.ConnectException: Connection refused: connect
  5. STACKTRACE:
  6. java.net.SocketException: java.net.ConnectException: Connection refused: connect
  7.         at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
  8.         at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
  9.         at com.mysql.jdbc.Connection.createNewIO(Connection.java:2555)
  10.         at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
  11.         at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
  12.         at java.sql.DriverManager.getConnection(DriverManager.java:525)
  13.         at java.sql.DriverManager.getConnection(DriverManager.java:171)
  14.         at book.db.BdD.<init>(BdD.java:24)
  15.         at book.Menu.main(Menu.java:15)
  16. ** END NESTED EXCEPTION **


 
Vous pensez que ça pourrait se bloquer suite à un firewall sur ma machine?


Message édité par white-rabbit le 12-12-2005 à 16:59:03

---------------
>> Portfolio: www.MyDeclic.com
n°1264738
Bidem
Posté le 12-12-2005 à 17:22:55  profilanswer
 

Oui, c'est le message d'erreur typique quand un proxy/firewall refuse la connexion

n°1264746
sircam
I Like Trains
Posté le 12-12-2005 à 17:25:42  profilanswer
 

Sans doute ta DB n'accepte pas les connections en remote, donc autre que 'localhost'. Consulte la doc du DBMS à ce sujet et fais une recherche sur ce forum : ça revient souvent.
 
Ensuite, quand tu catches une SQLException plutôt que la générique Exception, tu disposes de précieuses infos supplémentaires : code d'erreur vendeur (donc renvoyé par le DBMS) et exceptions chaînées éventuelles. Cf. javadoc.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1264748
white-rabb​it
oOps !
Posté le 12-12-2005 à 17:26:26  profilanswer
 

j'ai pourtant desactivé le firewall de XP. je ne pense pas que le reseau de mon entreprise puisse jouer là dessus, non ? pour des tests sur ma propre machine...


---------------
>> Portfolio: www.MyDeclic.com
n°1266562
white-rabb​it
oOps !
Posté le 14-12-2005 à 16:59:52  profilanswer
 

c'est bon ça fonctionne parfaitement maintenant. mon pb venait de mon serveur mysql qui n'ecoutait pas sur le port. à cause de easyphp qui simplifie unpeu trop tout.


---------------
>> Portfolio: www.MyDeclic.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  connexion et echange de donnée avec base mysql

 

Sujets relatifs
DELPHI DBExpress et MySqlalimenter une base de donnèes via des services web
Echange de valeurs entre deux fichiers texte..Image stocker base de donnee access
Base de données gratuite pour soft commercial?Script PHP/Mysql
PHP Mysql et Access...MySQL ne fcontionne pas. Help me please :(
Compter des entrées dans une table mysql 
Plus de sujets relatifs à : connexion et echange de donnée avec base mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR