Bonjour tout le monde
je suis debutante en j2ee, je travaille avec jsp/servlet. mon probleme c'est l'affichage d'une table de la base de données. je ne sais pa comment proceder pour le faire.. eest ce que quelqu'un peu m'aider???
merci d'avance :)
Version imprimable
Bonjour tout le monde
je suis debutante en j2ee, je travaille avec jsp/servlet. mon probleme c'est l'affichage d'une table de la base de données. je ne sais pa comment proceder pour le faire.. eest ce que quelqu'un peu m'aider???
merci d'avance :)
déja il faut identifier ta base de données oracle, sqlserveur, mysql ?
en fonction de ta base de données tu devras utiliser des drivers jdbc différents et possèdes tu login et mdp te permettant de t'y connecter ?
j'utilise une BD postgresql, j'ai pas de probleme dans la connection et les drivers à utiliser, mai putot je veus savoir les etapes à suivre aprés m connecter à la base..
pour préciser de plus,j'ai une tables dans ma base de données et je veux afficher les informations sous forme d'un table.. je ne sais pas qu'est que je dois ecrire dans ma jsp et ma servlet..
merci d'avance
Un petit bout de code à titre d'exemple
Après a toi de voir comment tu veux stocker les données récupérées et stocké dans une arrayList un hashMap, vector que tu peux passe ensuite par la request à ta jsp pour afficher les données.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 try { PreparedStatement preparedStatement = null; ResultSet resultSet = null; String request ="select nom prenom from toto where id = ?" ; MonObjetConnection.prepareStatement(request); // Remplissage du paramètre. preparedStatement.setString(1,monID); //execution de la requête resultSet = preparedStatement.executeQuery(); //on récupère les lignes while(resultSet.next()) { System.out.println(resultSet.getString("nom")); } //on ferme tout if(resultSet != null) resultSet.close(); if(preparedStatement != null) preparedStatement.close(); } catch(SQLException sqlex) { sqlex.printStackTrace(); } finally { //fermeture de la connexion }
Si tu veux le faire uniquement avec une page JSP, ça pourrait ressembler à ceci
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@page import="com.database.DataBaseUtils"%> <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.ResultSetMetaData"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Connection"%> <html> <body> <form> <% String tableName = request.getParameter("tableName"); if (tableName == null) tableName = ""; %> Table à traiter : <input type="text" name="tableName" value="<%=tableName%>"/> </form> <% if (tableName.trim().length() > 0) { Connection connection = null; try { connection = DataBaseUtils.getConnection(); Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("select * from " + tableName); ResultSetMetaData rsmd = rs.getMetaData(); out.write("<table>"); out.write("<tr style=\"background:#f0f0f0\">"); for (int i = 1; i <= rsmd.getColumnCount(); i++) { out.write("<td>" + rsmd.getColumnName(i) + "</td>"); } out.write("</tr>"); while (rs.next()) { out.write("<tr>"); for (int i = 1; i <= rsmd.getColumnCount(); i++) { out.write("<td>" + rs.getString(i) + "</td>"); } out.write("</tr>"); } out.write("</table>"); } catch (Exception e) { } finally { DataBaseUtils.closeConnection(connection); } } %> </body> </html>
merci beaucoup
voilà un extrait du code que j'avais essayé:
Alors il m'affiche l'erreur suivante: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 //j'ai fais ma connexion //puis j'ai preparer ma requete: PreparedStatement stm = con.prepareStatement ("Select * From maTable"); ResultSet rs = stm.executeQuery(); //retourner le nombre total d'enregistrement int tot=rs.getRow(); //l'affichage de maTable <table width="200" border="1"> <tr> <td>Numero</td> </tr> <% for (int h=0; h<tot; h++) { rs.next(); if (rs.getRow() > tot) { break; } %> <tr> <td><%=rs.getString(1)%></td> </tr> <% } %> </table>
javax.servlet.ServletException: L''opération nécessite un scrollable ResultSet, mais ce ResultSet est FORWARD_ONLY.
est ce ke vous pouvez m'aidez????
Retire les rs.getRow(), l'avancement du curseur se fait par rs.next()
Tu n'as pas besoin de connaître le nombre de lignes pour itérer, un simple
suffit...Code:
1
2
3
4
5
6 ResultSet rs = stmt.executeQuery(...); while (rs.next()) { ... ici, tu traites un enregistrement }
wi ça marche!! merciii infiniment
bonjour,je suis débutante en développement.je développe une page web avec jsp/servlet(eclipse) et je veux afficher mes données de ma table de base de donnée sous form d'un tableau.aidez moi s'il vous plait c trés important :(