cs_Erwan76
Messages postés29Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention 2 avril 2007
-
13 févr. 2007 à 10:27
cs_Erwan76
Messages postés29Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention 2 avril 2007
-
14 févr. 2007 à 10:48
bonjour a tous,
je suis débutant en java et je rencontre un probleme lors de son éxécution.
j'essaie de récupérer un champs d'une base de donnée MySql et de l'afficher dans une jlist
Mon code est le suivant (je vous mets le plus importan):
int i=0;
DefaultListModel Liste=new DefaultListModel();
void Connexion();
try {
while(i<10){
recordBD=sqlBD.executeQuery("SELECT Nom FROM tabetu;");
Liste.addElement(recordBD.getString(3));
jList1.setModel(Liste);
recordBD.next();
i++;
}
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 13 févr. 2007 à 15:03
http://java.developpez.com/faq/jdbc/ Je suis pas sur de comprendre ton code, surtout dans la partie while i < 10 ou tu lances 10 fois un requete. Dans ton resultat de requete tu va avoir plusieurs resultats c'est dans ces resultats qu'il faut itérer. (cf resultset)
++
gmi19oj19
Messages postés545Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention28 septembre 20112 14 févr. 2007 à 09:12
On est pas très avancé de savoir qu'il y a un problème si on sait pas lequel :/
Sinon, le fait de faire 10 fois la requete dans ton while va faire que
tu vas recuperer 10 fois le 3ème attribut du premier tuple récuperé,
étant donné qu'en dépit d'un next() à la fin de ton while, tu
réaffectes à ton ResultSet une valeur.
Donc, si le but est de recuperer le 3ème attribut des 10 premiers tuples dans ta liste et de l'afficher ensuite :
void Connexion();
try {
recordBD=sqlBD.executeQuery("SELECT Nom FROM tabetu;");
while(i<10){
Liste.addElement(recordBD.getString(3));
recordBD.next();
i++;
}
jList1.setModel(Liste);
sqlBD.close();
}
catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
}
Sinon, petit conseil : évite les majuscules en début de nom de
variable/méthode, ça peut preter à confusion avec des noms de classe
parfois et ça peut vite devenir galère pour s'y retrouver. N'oublie pas non plus le catch après ton try.
Et si j'ai répondu à coté, donne plus de détails sur le problème
cs_Erwan76
Messages postés29Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention 2 avril 2007 14 févr. 2007 à 09:22
Désolé, c'est vrai que je n'étais pas très explicite. Je recommence et j'ai aussi effectuer quelque changements.
Je souhaite récupérer des données d'une base mySQL et les afficher ou fur et a mesure dans une jlist.
Par exemple, un affichage de tous les "noms" que la base contient.
void connexion(){
try {
Class.forName("com.mysql.jdbc.Driver"); // Déclaration du connecteur
connectBD = DriverManager.getConnection("jdbc:mysql://localhost:3306/absences","root",""); // Connexion à la base
}
gmi19oj19
Messages postés545Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention28 septembre 20112 14 févr. 2007 à 09:33
C'est sur quel morceau du code que t'as un nullpointer ?
try/catch le blog qui lève l'exception et affiche le message lié à celle ci, ça t'aidera.
Personnellement, je pencherait pour un next de trop, étant donné que tu ne peux être certain d'avoir 10 resultats à ta requête.
Pour l'affichage au fur à mesure, ça sert à rien dans le sens où ça va
aller tellement vite que de toute façon tu verra pas la différence avec
un global. Auquel cas, je te renvoie au bout de code que j'ai corrigé
plus haut.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Erwan76
Messages postés29Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention 2 avril 2007 14 févr. 2007 à 10:48
mon code fonctionne. j'ai trouvé la solution.
Je voudrai vous demander quel ligne de code permet d'afficher une ligne entière (récupéré de la base ex:request * from ...) dans un jlist.
actullement, je ne parviens qu'a récupérer plusieurs champs mais ne me l'affiche pas sur la même ligne, mais en colonne:
par exemeple,ca me donne:
nom
prénom
age
et j'aurai voulu: nom premom age
sur la meme ligne.
J'ai essayer getArray mais çà ne fonctionne pas.
Merci pour votre aide car je sais que mes explications sont difficiles à comprendre.