Java

Résolu
dioufsou Messages postés 16 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 27 août 2009 - 20 août 2009 à 11:24
dioufsou Messages postés 16 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 27 août 2009 - 20 août 2009 à 15:37
Bonjour,
Je fais un stage, ou je dois faire une interface de gestion de base de donnée (sql) en java:
mon problème est le suivant j'aimerai associer deux combos pour faire un filtre par date sur les mois, les deux marchent séparément mais j'arrive pas a les associer:
voici ce qui marche:
void cmbBoxBDD(java.awt.event.ActionEvent event)
{
JComboBox cb = (JComboBox)event.getSource();
String newSelection = (String)cb.getSelectedItem();
this.Connection("SELECT *FROM `REPONSE` WHERE `DateE` >='2009-"+newSelection+"-01 00:00:00'",JTable2);
}
void cmbBoxBDD1(java.awt.event.ActionEvent event)
{
JComboBox cb1 = (JComboBox)event.getSource();
String newSelection1 = (String)cb1.getSelectedItem();
this.Connection("SELECT *FROM `REPONSE` WHERE `DateE`<'2009-"+newSelection1+"-30 23:59:59'",JTable2);
}

J'aimerai les associer avec la requette sql BETWEEN

Merci d'avance de m'aider

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 août 2009 à 15:00
Salut,

C'est pas compliqué du tout : au lieu de tout mettre le code dans les évents, tu le mets dans un classe à part qui se chargera de construire ta requête, c'est tout : ca te permettra de faire ce que tu cherche à faire, et ca rendra ton code beaucoup plus lisible et compréhensible par tous.
______________________________________
DarK Sidious
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 août 2009 à 12:09
Salut,

C'est que tu ne t'y prends pas de la bonne manière :
Dans ton code, tu ne traîte que le combo dernièrement modifié, alors qu'il faut non seulement traîter le combo dernièrement modifié, mais également le deuxième combo...

Je te conseille de te faire une classe qui stocke les valeurs sélectionnées dans tes 2 combos (qui sera mise à jour par les events) et qui se chargera de construire ta requête (avec ou sans BETWEEN selon le cas ou les deux combos sont valués ou non).
______________________________________
DarK Sidious
0
dioufsou Messages postés 16 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 27 août 2009
20 août 2009 à 13:42
Je vois ce que tu veus dire, mais je c pas trop comment agir sur les events pour la mise à jour.
Aurais tu un exemple stp
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 août 2009 à 14:26
Salut,

Et bien au lieu de tout coder dans tes fonctions d'event comme tu le fais, tu délègue le traîtement à une autre classe (ou une autre fonction de ta classe) qui se chargera de construire la requête SQL qu'il faut selon les valeurs sélectionnés dans les combo.

Grosso modo, ca donnerai un truc du genre :

class RequeteSQL {
  protected String debut = null;
  protected String fin == null;
  // getters et setter
  // ...
  
  public String getRequete() {
    if (debut != null && fin != null) {
      // construire requête avec BETWEEN
    } else if (debut != null) {
      // construire requête avec uniquement la valeur debut
    } else if (fin != null) {
      // construire requête avec uniquement la valeur fin
    }
  }
}


Et au niveau de tes events :

void cmbBoxDebut(java.awt.event.ActionEvent event) 
{ 
JComboBox cb = (JComboBox)event.getSource(); 
String newSelection = (String)cb.getSelectedItem(); 
tonInstanceDeRequeteSQL.setDebut(newSelection);
// récupèrer la requête générée et l'exécuter...
}

______________________________________
DarK Sidious
0

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

Posez votre question
dioufsou Messages postés 16 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 27 août 2009
20 août 2009 à 14:50
On se calme Mr Dark, j'ai juste tripatouillé un petit code je suis pas Dr S java moi.
Tout ceci me semble etre un peu compliqué, je vais deja essayé de comprendre et si ça marche je te tiens au courant merci de t'y etre penché.
Que ce que tu c soit avec toi, et bonjour au petit luc
0
dioufsou Messages postés 16 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 27 août 2009
20 août 2009 à 15:20
Salut,
En fait g deja une grosse class Connection qui me permet de me connecter à ma base de donné et de faire l'affichage au niveau de l'interface, mais c vrai qu'une ou 2 de plus ne devrai pas surcharger le code
merci encore
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 août 2009 à 15:31
Salut,

En java, ce qui compte ce n'est pas le nombre de classes, bien au contraire : il vaut mieux faire un programme clairement découpé en de nombreuses classes qui ont toutes des fonctionnalités bien distinctes, plutôt que de faire une grosse classe fourre-tout : c'est bien plus compréhensible pour quelqu'un qui ne connaît pas le programme et qui doit le reprendre pour en faire la maintenance, sans compte que ca permet de plus facilement tester chaque fonctionnalités du programme...
______________________________________
DarK Sidious
0
dioufsou Messages postés 16 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 27 août 2009
20 août 2009 à 15:37
Slt,
Je vois ce que tu veus dire, je vais m'appliquer à faire ça, en plus c logique.
merci encore
0
Rejoignez-nous