bonjour la communauté java,
j'ai un problème lorsque j'essaie de remplir une jTable avec le résultat d'une requête j'utilise la patter dao
j'ai une classe DaoLocataireImplementation qui contient une methode getLocataire dont le code est ci-dessous:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| @Override
public Vector<Locataire> getLocataire(Locataire locataire){
Vector<Locataire> listLocataires = new Vector<>();
con = Connexion.getConnection();
codeLocataire = locataire.getCodeLocataire();
query = "select * from locataire where ";
try {
if(!codeLocataire.toString().isEmpty()){
query = query + " codelocataire =" + codeLocataire;
}
if(!locataire.getNom().isEmpty()){
if(query.equals("select * from locataire")){
query = query + " nom='" + locataire.getNom() + "'";
}
else{
query = query + " and nom='" + locataire.getNom() + "'";
}
}
if(!locataire.getPrenom().isEmpty()){
if(query.equals("select * from locataire where ")){
query = query + " prenom ='" + locataire.getPrenom() + "'";
}
else{
query = query + " and prenom ='" + locataire.getPrenom() + "'";
}
}
if(!locataire.getTel().isEmpty()){
if(query.equals("select * from locataire where ")){
query = query + " tel ='" + locataire.getTel() + "'";
}
else{
query = query + " and tel ='" + locataire.getTel() + "'";
}
}
if(!locataire.getEmail().isEmpty()){
if(query.equals("select * from locataire where ")){
query = query + " email ='" + locataire.getEmail() + "'";
}
else{
query = query + " and email ='" + locataire.getEmail() + "'";
}
}
if(!locataire.getAdresse().isEmpty()){
if(query.equals("select * from locataire where ")){
query = query + " adresse ='" + locataire.getAdresse() + "'";
}
else{
query = query + " and adresse ='" + locataire.getAdresse() + "'";
}
}
if(!locataire.getCIN().isEmpty()){
if(query.equals("select * from locataire where ")){
query = query + " cin ='" + locataire.getCIN() + "'";
}
else{
query = query + " and cin ='" + locataire.getCIN() + "'";
}
}
stm = con.createStatement();
rs = stm.executeQuery(query);
while(rs.next()){
locataire.setCodeLocataire(rs.getInt(1));
locataire.setNom(rs.getString(2));
locataire.setPrenom(rs.getString(3));
locataire.setTel(rs.getString(4));
locataire.setEmail(rs.getString(5));
locataire.setAdresse(rs.getString(6));
locataire.setCIN(rs.getString(7));
listLocataires.add(locataire);
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e.getMessage());
}
return listLocataires;
} |
et j'execute le code de cette methode avec le code ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| private void jButtonSearchTenantsActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Locataire locataire = new Locataire();
if(!jTextFieldCodeLocataire.getText().isEmpty()){
locataire.setCodeLocataire(Integer.parseInt(jTextFieldCodeLocataire.getText()));
}
locataire.setNom(jTextFieldNom.getText());
locataire.setPrenom(jTextFieldPrenom.getText());
locataire.setCIN(jTextFieldCIN.getText());
locataire.setEmail(jTextFieldEmail.getText());
locataire.setAdresse(jTextFieldAdresse.getText());
locataire.setTel(jTextFieldTel.getText());
DaoLocataireImplementation dli = new DaoLocataireImplementation();
Vector<Locataire> listLocataires = dli.getLocataire(locataire);
JOptionPane.showMessageDialog(null, dli.query);
DefaultTableModel locatairesTableModel = (DefaultTableModel) jTableLocataires.getModel();
locatairesTableModel.getDataVector().removeAllElements();
for(int i = 0 ; i < listLocataires.size(); i++){
locatairesTableModel.addRow(new Object[]{listLocataires.get(i).getCodeLocataire(),
listLocataires.get(i).getCIN(),listLocataires.get(i).getNom(),
listLocataires.get(i).getPrenom(),listLocataires.get(i).getTel(),listLocataires.get(i).getEmail(),
listLocataires.get(i).getAdresse()});
}
} |
lorsque je veux tester la fonction je remplis une zone de text appelle jTextFieldNom avec la valeur elfihri qui est mon nom et j'ai dans la table plusieurs ligne avec le nom est egale a elfihri mais rien ne s'affiche dans la jTable.j'ai introduit dans le code la ligne
JOptionPane.showMessageDialog(null, dli.query);
pour voir ce qui se passe dans la requete mais je vois que la requete contient select * from locataire where codelocataire=0 and nom='elfihri'
alors que le champ codelocataire est vide.
je ne vois pas d'ou vient le probleme.merci d'avance pour votre aide
cordialement
Partager