emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 2012
-
4 janv. 2012 à 11:15
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 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?
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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();
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 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);
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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)
.
.
.
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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 !!!!
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 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 ?
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.");
}
}
}
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 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...
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 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 ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 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) ?
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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
emimene
Messages postés31Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention22 mars 20121 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
Eldius
Messages postés3Date d'inscriptionsamedi 9 juin 2007StatutMembreDernière intervention23 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