Précédent   Forum des professionnels en informatique > Java > Général Java > JDBC
JDBC Forum d'entraide sur l'API JDBC (Java Database Connectivity) et l'accès aux bases de données. Avant de poster -> FAQ JDBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2012, 22h11   #1
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 310
Points : 74
Points : 74
Par défaut Récupérer plusieurs informations - tableau ?

Bonsoir,

je cherche à récupérer une liste de string avec une requête pour les passer sur une page suivante.
Comme c'est une liste (5 valeurs), je pensais à les ajouter dans un tableau mais je ne vois pas vraiment comment faire.
Ce que j'ai pour l'instant :

Code :
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
 
connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "", "");
              stmt = connection.createStatement();
              rs = stmt.executeQuery("select lien from (select lien from IMAGE ORDER BY dbms_random.VALUE) WHERE rownum = 1");
              while (rs.next())
              {
                      HttpSession session = req.getSession(true);
                      String image1 = rs.getString(1);
                      session.setAttribute("image1", image1);
              }
              stmt = connection.createStatement();
              rs = stmt.executeQuery("select lien from (select lien from IMAGE ORDER BY dbms_random.VALUE) WHERE rownum = 1");
              while (rs.next())
              {
                      HttpSession session = req.getSession(true);
                      String image2 = rs.getString(1);
                      session.setAttribute("image2", image2);
              }
              stmt = connection.createStatement();
              rs = stmt.executeQuery("select lien from (select lien from IMAGE ORDER BY dbms_random.VALUE) WHERE rownum = 1");
              while (rs.next())
              {
                      HttpSession session = req.getSession(true);
                      String image3 = rs.getString(1);
                      session.setAttribute("image3", image3);
              }
              stmt = connection.createStatement();
              rs = stmt.executeQuery("select lien from (select lien from IMAGE ORDER BY dbms_random.VALUE) WHERE rownum = 1");
              while (rs.next())
              {
                      HttpSession session = req.getSession(true);
                      String image4 = rs.getString(1);
                      session.setAttribute("image4", image4);
              }
              stmt = connection.createStatement();
              rs = stmt.executeQuery("select lien from (select lien from IMAGE ORDER BY dbms_random.VALUE) WHERE rownum = 1");
              while (rs.next())
              {
                      HttpSession session = req.getSession(true);
                      String image5 = rs.getString(1);
                      session.setAttribute("image5", image5);
              }
 
String url="/index.jsp";
            ServletContext sc = getServletContext();
            RequestDispatcher rd = sc.getRequestDispatcher(url);
            rd.forward(req, res);
il faudrait utiliser une méthode .add() ou un truc comme ça ?
Merci à tous les développeurs java ^^
feldi est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 05h42   #2
Membre confirmé
 
Avatar de la.lune
 
Homme Bilal Soidik
Ingénieur développement logiciels
Inscription : décembre 2010
Messages : 126
Détails du profil
Informations personnelles :
Nom : Homme Bilal Soidik

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : décembre 2010
Messages : 126
Points : 221
Points : 221
Envoyer un message via MSN à la.lune Envoyer un message via Yahoo à la.lune Envoyer un message via Skype™ à la.lune
Là déjà tu ne veut pas utiliser un tableau mais tu veux plutôt utiliser la session pour stocker tes donnés. Bon l'essentiel les session aussi servent à stocker des donné. Tu n'a pas besoin d'un add quelque part car tu as déjà fait un setAttribute("clé",valeur), tu as fait 2 gravees erreurs 1. tu répété une boucle while 5 fois , tu devait pluôt faire un if et non pas un while if(rs.next()){..
2. Tu détruit à chaque fois ta session, alors pourquoi tu veut qu'il soit là, il faut déclarer ta session dehors de l'instruction d'ajout pour s'assurer qu'une seul session va contenir tous tes donnés.
Mais une petite astus pour ne pas faire 5 if déclare un entier i et utiliser une seul boucle while et increment le i et à chaque fois tu concatène avec image lors de l'insertion comme ça:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "", "");
              stmt = connection.createStatement();
              rs = stmt.executeQuery("select lien from (select lien from IMAGE ORDER BY dbms_random.VALUE) WHERE rownum = 1");
int i=1;
HttpSession session = req.getSession(true);
              while (rs.next())
              {          
                      String image = rs.getString(1);
                      session.setAttribute("image"+i, image);
              i++
              }
 
 
String url="/index.jsp";
            ServletContext sc = getServletContext();
            RequestDispatcher rd = sc.getRequestDispatcher(url);
            rd.forward(req, res);
Tu pourra récupérer tes chaines de caractères utilisant ton objet session là avec la méthode Object getAttribute(String name);
par exemple
Code :
1
2
3
 
 
String image =getAttribute("image2")
la.lune est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/01/2012, 10h09   #3
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 310
Points : 74
Points : 74
OK merci pour ta proposition !
Je la test dès que je peux et je te fais un compte rendu.

feldi est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 10h50   #4
Membre confirmé
 
Avatar de la.lune
 
Homme Bilal Soidik
Ingénieur développement logiciels
Inscription : décembre 2010
Messages : 126
Détails du profil
Informations personnelles :
Nom : Homme Bilal Soidik

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : décembre 2010
Messages : 126
Points : 221
Points : 221
Envoyer un message via MSN à la.lune Envoyer un message via Yahoo à la.lune Envoyer un message via Skype™ à la.lune
Juste pour rectifier un oubli lors de la récupération, je souligne que c'est avec la session qu'on récupère les attributs
Code :
String image = session.getAttribute("image2")
la.lune est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/01/2012, 16h37   #5
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 310
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 310
Points : 74
Points : 74
ça fonctionne très bien !
Merci à toi
feldi est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h32.


 
 
 
 
Partenaires

Hébergement Web