Hier j'ai cr�� une petite base access pour tester le jdbc. J'ai r�ussi (gr�ce au tutoriel) � me connecter dessus, � r�cup�rer des donn�es, � inserer des donn�es, supprimer, et faire des mises � jour. Donc je suis assez satisfait mais j'ai un gros probleme (surement de logique) pour r�cup�rer plusieurs enregistrement en meme temps.

Voici ce que j'ai fait hier. Je ne r�cupere qu'un seul enregistrement donc pas de soucis.

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
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
78
79
80
81
82
83
84
85
86
87
88
 
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import java.sql.*;
 
public class vaChercher extends HttpServlet implements Servlet {
 
 
	static Connection connexion;
	static ResultSet resultat;
	static String R;
	static String R2;
	static String R3;
	static String requete; 
 
 
 
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
			cherche(req,resp);
	}
 
 
 
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
			cherche(req,resp);
	}
 
 
	public void cherche(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
				//recup des parametres
				String nom = req.getParameter("nom");
 
				try{
					Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
					System.out.println("chargement du driver réussi");
				}
				catch(ClassNotFoundException exc){
					System.out.println("Erreur de chargement du pilote !");					
				}
				String url="jdbc:odbc:lru";
 
				try{
					Connection connexion = DriverManager.getConnection(url,"","");
					System.out.println("connexion réussie");
					requete = "select * from Famille where Nom_Famille = '" + nom + "'";
					Statement statement = connexion.createStatement();	
					resultat = statement.executeQuery(requete);
					while(resultat.next()) {
						R = resultat.getString("Nom_Famille");
						R2 = resultat.getString("prenom_pere");
						R3 = resultat.getString("prenom_mere");
						System.out.println("dans la famille " + R + ", le pere s'appelle " + R2 + " et la mere " + R3);
 
						HttpSession session = req.getSession();
						ServletContext context = getServletContext();
						System.out.println("session = "+session);
 
 
						//création du bean
						BeanNom mbean = new BeanNom();
						mbean.setNom(nom);
						mbean.setPrenomP(R2);
						mbean.setPrenomM(R3);
						mbean.setResu(resultat);
						System.out.println("mbean= "+mbean);
 
						session.setAttribute("mbean",mbean);
 
						context.getRequestDispatcher("recupFam.jsp").forward(req,resp);
					}
 
				}
				catch(SQLException exc){
					System.out.println("Erreur ! - " + exc.toString());
				}
			}
}
pas de soucis puisque je ne r�cupere qu'un seul enregistrement.

Maintenant si je change ma requete comme ceci :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
 
"select * from Famille";
Je vais r�cup�rer plusieurs enregistrements et je ne vois pas comment les envoyer � ma JSP pour l'affichage.

J'ai bien une petite id�e mais je n'arrive pas � la mettre en place. Je pense qu'il ne faut pas r�cup�rer les champs dans la servlet et les envoyer 1 par 1 dans la JSP, je pense qu'il faut plutot envoyer tout d'un bloc dans la JSP et faire ensuite une boucle pour l'affichage.
Suis je sur la bonne voie? si oui comment tout envoyer d'un bloc? Sinon comment dois-je m'y prendre?

Merci pour vos r�ponses ! C'est quand meme dur d'apprendre Java tout seul... (heuresement que vous etes l� )