Emprunter un livre
amdnibrass
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'essai de rédiger une methode en java permet d'emprunter un livre à un étudiants , voilà mon tentative
mais ceçi m'affiche seullement le cas ou l'étudiant n'a pas le droit de prendre
j'essai de rédiger une methode en java permet d'emprunter un livre à un étudiants , voilà mon tentative
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { try { int nb=0;/*nombre des livres disponbles*/ int nb1=0;/*nombre des livre empruntés par un étudiant*/ String mysql = "select nbrlivemp from tableuser where iduser=?"; String idu = idus.getText(); pst = conn.prepareStatement(mysql); pst.setString(1, idu); rs = pst.executeQuery(); while (rs.next()) { nb = rs.getInt("nbrlivemp"); } if (nb==0){ String mysql1="select nbLivDispo from tableliv where idliv=?"; String idL= idli.getText(); pst1 = conn.prepareStatement(mysql1 ); pst1.setString(2, idL); rs1 = pst1.executeQuery(); while (rs1.next()) { nb1 = rs1.getInt("nbLivDispo"); } if (nb1 >=1) { nb++; nb1--; String val = String.valueOf(nb); String val1 = String.valueOf(nb1); String mysql2="update tableuser set nbrlivemp='"+val+"' where iduser=?"; pst2= conn.prepareStatement(mysql2); pst2.setString(1, idu); pst2.executeUpdate(); String mysql3="update tableliv set nbLivDispo='"+val1+"' where idliv=?"; pst3 = conn.prepareStatement(mysql3); pst3.setString(2, idL); pst3.executeUpdate(); JOptionPane.showMessageDialog(this, "livre bien emprunté " ,"Bien", JOptionPane.PLAIN_MESSAGE); } else { JOptionPane.showMessageDialog(this, "Pas de livre disponible" ,"livre 0 ", JOptionPane.PLAIN_MESSAGE); } } else{ JOptionPane.showMessageDialog(this, "c'est suffisant pour vous SVP!!" ,"c suffisan pr vous !!", JOptionPane.PLAIN_MESSAGE); } }catch (Exception ex) { Logger.getLogger(PreRen.class.getName()).log(Level.SEVERE, null, ex); }
mais ceçi m'affiche seullement le cas ou l'étudiant n'a pas le droit de prendre
A voir également:
- Emprunter un livre
- Emprunter coran - Télécharger - Histoire & Religion
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Livre epub c'est quoi - Guide
- Livre d'or hiwit ✓ - Forum PHP
- Livre de recette saucier seb 8361 pdf gratuit - Forum Loisirs / Divertissements
1 réponse
Bonjour,
En faisant ceci :
La valeur de nb1 sera toujours la dernière lue. S'il y en a plusieurs tu perds toutes les autres. Idem lorsque tu fais cela :
Je pense que tu devrais revoir tes boucles pour lire les résultats.
Sinon tout le reste du code est crade !
Tu dois séparer tes instructions dans des méthodes et classes séparées.
Une partie qui gère les bases de données, une autre qui gère l'interface graphique et une troisième qui gère la logique métier. Là tu mélanges tout c'est un peu n'importe quoi. En plus je vois dans ton code la génération automatique de Netbeans ce qui est là encore une mauvaise idée.
De plus tu te sers très mal de tes preparedStatement, d'une part tu as encore des concaténations en dur genre
Bref, ton code fourmille de bugs possibles, et pour l'instant c'est vraiment trop confus pour te dire d'où vient exactement ton problème, il peut potentiellement venir de partout (mauvaise requête à cause des preparedStatement, mauvais résultat à cause des boucles, etc.)
En faisant ceci :
while (rs.next()) { nb = rs.getInt("nbrlivemp"); }
La valeur de nb1 sera toujours la dernière lue. S'il y en a plusieurs tu perds toutes les autres. Idem lorsque tu fais cela :
while (rs1.next()) { nb1 = rs1.getInt("nbLivDispo"); }
Je pense que tu devrais revoir tes boucles pour lire les résultats.
Sinon tout le reste du code est crade !
Tu dois séparer tes instructions dans des méthodes et classes séparées.
Une partie qui gère les bases de données, une autre qui gère l'interface graphique et une troisième qui gère la logique métier. Là tu mélanges tout c'est un peu n'importe quoi. En plus je vois dans ton code la génération automatique de Netbeans ce qui est là encore une mauvaise idée.
De plus tu te sers très mal de tes preparedStatement, d'une part tu as encore des concaténations en dur genre
"nbrlivemp='"+val+"'", d'autres part tu places tes setString au mauvais indice, par exemple
pst1.setString(2, idL);alors que pst1 n'a qu'un seul point d'interrogation...
Bref, ton code fourmille de bugs possibles, et pour l'instant c'est vraiment trop confus pour te dire d'où vient exactement ton problème, il peut potentiellement venir de partout (mauvaise requête à cause des preparedStatement, mauvais résultat à cause des boucles, etc.)