Affichage d'une BDD mysql avec JCreator

emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 - 4 janv. 2012 à 11:15
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 2 févr. 2012 à 09:37
Bonjour à tous, je suis débutante en java, j'ai besoin de faire une application d'affichage des enregistrements sur une base de données.

Tout d'abord, je liste ici quelques détails concernant les outils utilisés.
1 - Je dévellope en java avec JCreator, version 3
2 - Pour la base de donnée j'utilise Mysql de phpMyAdmin
3 - Ma base de données contient une seule table
4 - Je suis sur Windows7
5 - J'ai téléchargé le jar: mysql-connector-java-5.0.8 et je l'ai ajouté dans:
C:\Program Files (x86)\Java\jre6\lib\mysql-connector-java-5.0.8

j'ai créer la base de donnée et je veux écrire un code en java permettant de se connecter à cette base de données. Est se que vous pouvez m'aider à commencer avec JCreator?

32 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
4 janv. 2012 à 12:01
Bonjour,

Quel que soit ton ide (JCreator ou autre), la mise en œuvre est la même. Il y a énormément de tutoriels sur internet qui te permettront de démarrer.

Poses des questions quand tu auras une difficulté concrète.
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
16 janv. 2012 à 21:42
merci bcp d'avoir repondre

j'ai réalisé la connexion JDBC, mon probleme actuel c l'insertion des valeurs saisis dans les JTextfield et une seule JComboBox..
public void Enregistrer() {
System.out.println("PROCEDURE ENREGISTREMENT");
Connection con = null;
try {
con=new Jdbc().conn;
String nom,prenom, datenaiss,lieunaiss,add1,add2,noml, prenoml,nums, nump,dateprod, ca1,ca2,ca3,cb1,cb2,cb3,cc1,cc2,cc3,cd1,cd2,cd3,ce1,ce2,ce3,cf1,cf2,cf3; nom=Nom.getText();
int groupage=Groupage.getSelectedIndex();//la JComboBox
prenom=Prenom.getText();
datenaiss=DateNaiss.getText();
lieunaiss=LieuNaiss.getText();
add1=Adresse1.getText();
add2=Adresse2.getText();
noml=NomLatin.getText();
prenoml=PrenomLatin.getText();
nums=NumSerie.getText();
nump=NumPermis.getText();
dateprod=DateProduction.getText();
ca1=CA1.getText();ca2=CA2.getText();ca3=CA3.getText();
cb1=CB1.getText();cb2=CB2.getText();cb3=CB3.getText();
cc1=CC1.getText();cc2=CC2.getText();cc3=CC3.getText();
cd1=CD1.getText();cd2=CD2.getText();cd3=CD3.getText();
ce1=CE1.getText();ce2=CE2.getText();ce3=CE3.getText();
cf1=CF1.getText();cf2=CF2.getText();cf3=CF3.getText();

///////////////////////////////
Statement stm = con.createStatement() ;
// insertion
String str="INSERT INTO `fiche` (nom,prenom,datenaiss,lieunaiss,groupage,add1,add2,Noml,Prenoml,nums,nump,dateprod) VALUES ('"+Nom.getText()+"','"+Prenom.getText()+"','"+DateNaiss.getText()+"','"+LieuNaiss.getText()+"','"+Groupage.getSelectedIndex()+"','"+Adresse1.getText()+"','"+Adresse2.getText()+"','"+NomLatin.getText()+"','"+PrenomLatin.getText()+"','"+NumSerie.getText()+"','"+NumPermis.getText()+"')";
str="INSERT INTO `fiche` (ca1,ca2,ca3,cb1,cb2,cb3,cc1,cc2,cc3,cd1,cd2,cd3,ce1,ce2,ce3,cf1,cf2,cf3) VALUES ('"+CA1.getText()+"','"+CA2.getText()+"','"+CA3.getText()+"','"+CB1.getText()+"','"+CB2.getText()+"','"+CB3.getText()+"','"+CC1.getText()+"','"+CC2.getText()+"','"+CC3.getText()+"','"+CD1.getText()+"','"+CD2.getText()+"','"+CD3.getText()+"','"+CE1.getText()+"','"+CE2.getText()+"','"+CE3.getText()+"','"+CF1.getText()+"','"+CF2.getText()+"','"+CF3.getText()+"')" ;
////////////////////////////////////////////////////
stm.executeUpdate(str);
JOptionPane.showMessageDialog(null, "Fiche Ajoutée!", "Confirmation", JOptionPane.ERROR_MESSAGE);
con.close();

}catch(Exception x) {
System.out.println("probleme pendant l'enregistrement");
JOptionPane.showConfirmDialog(null,"ENREGISTREMENT NON EFFECTUE !","MESSAGE D\'ERREUR",JOptionPane.OK_CANCEL_OPTION);
x.printStackTrace();}
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
17 janv. 2012 à 07:46
Et qu'est ce qui ne va pas avec ce code si ce n'est qu'il est assez mal écrit :)
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
17 janv. 2012 à 08:57
Bonjour
mon code n'est pas vraiment mal écrit c'est lisible !! j'ai bcp de variables!!
ma question:
Pour insérer les valeurs des JTextfield et JComboBox dans ma table, il faut:
1. Se connecter: con=new Jdbc().conn;
2. Statement stm = con.createStatement() ;
3. String str="INSERT INTO `fiche` (nom,....) VALUES ('"+Nom.getText()+"',...')";
4. stm.executeUpdate(str);
5. Déconnexion ();

Apres compilation y a pas d'erreurs, mais lors l’exécution, une exception se déclenche au niveau (2)..
- est ce que cet ordre est juste ?
- comment récupérer la valeur du JComobox, je récupere que son Int position:
int groupage=Groupage.getSelectedIndex();//la JComboBox

merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
17 janv. 2012 à 09:14
C'est bon, je ne voulais pas te fâcher, c'est juste que certains noms de variables ne sont pas très explicites et que tu ne respectes pas les normes de codage en java. Mai globalement, ca va quand même.


L'ordre de tes étapes est bon, peux tu me donner la trace de ton exception?

Pour récupérer la valeur i de ton combobox : combo.getItemAt(i);
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
17 janv. 2012 à 10:09
merci Julien39
apres execution je click sur le boutton enregistrer, le JOptionPane affiche showConfirmDialog("ENREGISTREMENT NON EFFECTUE !")
et la trace de mon exception:
PROCEDURE ENREGISTREMENT
--------------------------
Connexion au driver JDBC
Driver com.mysql.jdbc chargé
Connexion a la base établie
------------------------------
probleme pendant 'enregistrement

java.lang.NullPointerException
at frmMere.Enregistrer(frmMere.java:341)
at frmMere$9.actionPerformed(frmMere.java:248)
at javax.swing.AbstractButton.fireActionPerfrormed(AbstractButton.java:1995)
.
.
.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
17 janv. 2012 à 14:04
Et peux tu me signaliser la ligne qui lève l'exception. En gros, tu appelles une méthode sur un objet qui est null.
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
17 janv. 2012 à 15:25
Statement stm = con.createStatement() ;

c'est cette ligne qui déclenche l'erreur car j'ai essayé inséré mis cette ligne apres insersion:
1/ String str="INSERT INTO `fiche` (nom,....) VALUES ('"+Nom.getText()+"',...')";
2/ System.out.println ( nom+" "+.....+); sachant que nom=Prenom.getText();
3/ Statement stm = con.createStatement() ;

il affiche tout les champs saisis et récupère leurs valeurs mais il les insère pas dans la table !!!!
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
17 janv. 2012 à 15:48
Alors con est null quand tu appelles la méthode createStatement(), pour t'en assurer tu peux faire un System.out.println(con); avant cette ligne.

Donc con=new Jdbc().conn retourne null. Tu as certainement mal paramétré ta connexion à la base de donnes. Es tu certain des identifiants ? De l'url ? Les services sont ils bien démarrés ? Parviens tu à accéder à la base par un autre moyen ?
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
17 janv. 2012 à 16:01
c'est vrai con=null
je fais un appel con=new Jdbc().conn;
la classe JDBC:

import java.awt.*;
import java.io.*;
import java.sql.*;

public class Jdbc
{
public Connection conn;
public Jdbc()
{
Connection conn = null;
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 en charge.");
}
catch (ClassNotFoundException a)
{
System.out.println ("Driver non trouve.");
}
catch (Exception b)
{
System.out.println ("Probleme sur chargement de driver JDBC.");
}

try
{
// Etablissement de la connexion avec la base
conn = DriverManager.getConnection("jdbc:mysql://localhost/permis'user=root&password=");
System.out.println("Connexion a la base Etablie.");
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.");
}
}
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
18 janv. 2012 à 07:42
Commence par enlever ces lignes :

catch (Exception d)
{
//..
}

et surtout les catch(ClassNotFoundException e), ce sont deux choses qu'il ne faut jamais
faire.

Elles catchent toutes les exceptions même les runtime, et ca t'empêche de voir les erreurs quand elles surviennent et d'en récupérer la trace.

Ensuite, il faut voir ce qui ne va pas avec DriverManager.getConnection("jdbc:mysql://localhost/permis'user=root&password="); Je ne sais pas si Jdbc est bien présent dans ton classpath ? sinon, les paramètres de connexion sont mauvais ou ta base n'est pas démarrée...
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
18 janv. 2012 à 09:49
j'ai enlevé les catch, maint "con" ne rends pas la valeur null
pour la base de donnée: j'utilise MySql de PhpMyadmin, normalement ma base de données se démarre lors je lance le wamp server et je peux manipuler mes tables!!
pour le JDBC, j'utilise JCreator:
- j'ai téléchargé mysql-connector-java-5.0.8
- je l'ai ajouté dans: Project> Properties> Requiered Libraries> new> classes> add> Archive> mysql-connector-java-5.0.8-bin.jar
- j'ai meme ajouté dans: Project> Properties> Requiered Libraries> new> classes> add> Path> mysql-connector-java-5.0.8
- j'ai coché les deux >> OK

Stp,Comment je peux vérifier que je suis entraîne d’insérer des valeurs dans la table?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
18 janv. 2012 à 13:43
Là, étant donné que ta connexion est nulle, tu ne peux rien faire. Je dirais que tes identifiants ne sont pas bons. Ton classpath dit être ok étant donné que tu ne lèves pas de classNotFoundException. Est ce que tu suis un tutoriel pour créer cette connexion ? Es tu certain du code ?
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
18 janv. 2012 à 14:14
ma connexion n'est pas nulle car j'ai enlevé les exceptions que tu ma mentionné, j'ai testé ca par :

public void Enregistrer() {
System.out.println("PROCEDURE ENREGISTREMENT");
Connection con= null;
try {
[b]con = DriverManager.getConnection("jdbc:mysql://localhost/permis'user=root&password=");
/b Class.forName("com.mysql.jdbc.Driver").newInstance();
String nom,....;
nom = Nom.getText();
.
.
System.out.println(con);
Statement stm = con.createStatement() ;
// insertion
//String str ="INSERT INTO `fiche_permis` (nom,..) VALUES ('"+Nom.getText()+"',....+"')";
stm.executeUpdate(str);
JOptionPane.showMessageDialog(null, "Fiche Ajoutée!", "Confirmation", JOptionPane.ERROR_MESSAGE);
con.close();
}
catch(Exception x) {
System.out.println("probleme pendant l'enregistrement");
JOptionPane.showConfirmDialog(null,"ENREGISTREMENT NON EFFECTUE !","MESSAGE D\'ERREUR",JOptionPane.OK_CANCEL_OPTION);
x.printStackTrace();}
}
---------------------------------------------------------------------------------
apres execution:
PROCEDURE ENREGISTREMENT
com.mysql.jdbc.JDBC4Connection@17f1ba3

probleme pendant l'enregistrement
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
18 janv. 2012 à 14:26
Et alors, quelle est ta nouvelle exception ? Si tu n'en as plus, c'est que ca devrait être bon. Tu peux faire un select sur ta table pour vérifier. Tu as un autocommit (en général, c'est le cas) ?
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
18 janv. 2012 à 18:27
j'ai ajouté quelques enregistrements dans ma table et j'ai testé le SELECT dans mon code et ça marche ! je peux récupérer les valeurs et les afficher..
mais le INSERT ca marche pas!! c'est dans cette partie que le problème persiste

Statement stm = con.createStatement() ;
String str="INSERT INTO `fiche_permis` (nom,..) VALUES ('"+Nom.getText()+"',....+"')";
stm.executeUpdate(str);
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
19 janv. 2012 à 07:27
Et tu obtiens quoi ? Une exception ? Si tu n'obtiens rien et que tout semble normal, passes un "COMMIT;" et ca réglera certainement le problème.
0
emimene Messages postés 34 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 22 mars 2012 1
19 janv. 2012 à 09:35
Apres l’insertion manuelle des enregistrements dans ma table j'ai pu faire le SELECT pour afficher les champs saisis et le UPDATE pour modifier un champ mais je peux pas réinsérer le dans la table§ toujours le problème INSERT.
je ne sais pas ou et comment utiliser ce COMMIT; stp aide moi
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
19 janv. 2012 à 13:58
C'est une requete à exécuter, comme tu fais un insert, fais juste cette requête : "COMMIT" ou ajoutes le après ta requête insert.

Ou alors ajoute un autocommit...
0
Eldius Messages postés 3 Date d'inscription samedi 9 juin 2007 Statut Membre Dernière intervention 23 janvier 2012
20 janv. 2012 à 19:17
Slt,

j'ai semble t'il le même souci de insert into ;x je viens de passe l'aprem à cherche et réalise toute sorte de test sans réponse ;c et pareil je pige pas ton commit

Si je trouve viendrai laisse un message .. :x
0