IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

affiché le contenu d'une table de BD à partir d'une ArrayList<String[]>


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 110
    Points : 56
    Points
    56
    Par défaut affiché le contenu d'une table de BD à partir d'une ArrayList<String[]>
    Bonjour,
    afin de ne pas melanger les codes dans une même page jsp, je prefere passer par une servlet où je recupère le contenu de ma table puis par la methode request.getAttribute("att") j'aurai mes données affichés dans la pages jsp
    je procède comme suit
    J'utilise une ArrayList de tableaux de String
    je crée les tableau
    j'execute ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ArrayList<String[]> chefActel = new ArrayList<String[]>();
    		String[] login =  new String[100];
    		String[] pass = new String[100];
    		String [] matricule = new String[100];
    		String [] nom = new String[100];
    		String [] prenom = new String[100];
    		String [] email = new String [100];
    		String [] codeActel = new String[100];
    		String query ="select c.login, c.pass, p.matricule, p.nom, p.prenom, p.email, ch.codeactel from compte c, personnel p, chefactel ch	where c.login = p.logincompte and p.matricule = ch.matricule";
    		ResultSet result = conn.createStatement().executeQuery(query);
    mon premier problème c'est que je veu effectuer le tout dans une même fonction peut import le nombre de boucle
    j'ai essayé d'itérer manuellement ces deux sol° mais je croi que ca ne marchera pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    String query ="select c.login, c.pass, p.matricule, p.nom, p.prenom, p.email, ch.codeactel from compte c, personnel p, chefactel ch	where c.login = p.logincompte and p.matricule = ch.matricule";
    		ResultSet result = conn.createStatement().executeQuery(query);
    ResultSetMetaData resultMeta = result.getMetaData();
    int j = 0;
    while(result.next())
    for(int i = 1; i<=resultMeta.getColumnCount; i++)
    {
    login[j] = result.getObject(i).toString();
    pass[j] = result.getObject(i).toString();
    j++;
    matricule[j] = result.getObject(i).toString();
     
    //2eme sol°
    for(int i = 1; i<=resultMeta.getColumnCount; i++)
    while(result.next())
    {
    login[j] = result.getObject(i).toString();
    pass[j] = result.getObject(i).toString();
    j++;
    }
    dans ces deux sol° les tableaux vont recevoir toujours la même valeur
    comment proceder pour recuperer ces données
    merci

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    Bonjour,

    1) Ton code est très "sale" . Avec un minimum de logique, on en sort des beans plus facile à lire ensuite sur ton fichier jsp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class ChefActelBean {
        private String login;
        private String pass;
        private String matricule;
        private String nom;
        private String prenom;
        private String email;
        private String codeActel;
     
        // Etant de nature fainéant, je vais te laisser faire les getters/setters ;)
    }
    2) Ton algorithme de récupération des données est faux en lui même. Dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    login[j] = result.getObject(i).toString();
    pass[j] = result.getObject(i).toString();
    Tu assigne à login[j] et pass[j] exactement la même chose. L'appel d'un getter ne modifie pas l'état de ton Result.
    Aide toi aussi de SQL qui ne te déteste pas . Nomme tes colonnes pour rendre la suite de ton code plus lisible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    List<ChefActelBean> cabList = // Utilise l'implementation que tu veux.
    String query ="select c.login as login, c.pass as pass, p.matricule as matricule,
    p.nom as nom, p.prenom as prenom, p.email as email,
    ch.codeactel as codeactel from compte c, personnel p, chefactel ch
    where c.login = p.logincompte and p.matricule = ch.matricule";
    ResultSet result = conn.createStatement().executeQuery(query);
     
    while (result.next()) {
    ChefActelBean cab = new ChefActelBean();
    cab.setLogin(result.getString("login"));
    cab.setPass(result.getString("pass"));
    cab.setMatricule(result.getString("matricule"));
    cab.setNom(result.getString("nom"));
    cab.setPrenom(result.getString("prenom"));
    cab.setEmail(result.getString("email"));
    cab.setCodeActel(result.getString("codeactel"));
    cabList.add(cab);
    }
     
    return cabList;

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/03/2011, 11h22
  2. Réponses: 4
    Dernier message: 01/06/2007, 13h54
  3. Réponses: 12
    Dernier message: 28/11/2006, 15h34
  4. MAJ table Ref a partir d'une table temporaire
    Par juan64 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/08/2006, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo