salut tout le monde
J'ai une base de données MySqlet j'aimerai récupérer les données stocké dans BD
ma servlet est la suivante :
J'ai eu une classe CatalogueMetierProduitImpl qui contient les différentes opérations d'insertion, de récupérer un produit ...
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 package com.example; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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 mql.com.metier.CatalogueMetierProduitImpl; import mql.com.metier.ICatalogueProduitMetier; import mql.com.metier.Produit; import mql.com.model.ProduitModel; public class ControleurServletProduit extends HttpServlet { private static final long serialVersionUID = 1L; private ICatalogueProduitMetier metier; @Override public void init() throws ServletException { metier =new CatalogueMetierProduitImpl("ecommerce"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("produit.jsp").forward(request, response); System.out.println("GET"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ProduitModel model=new ProduitModel(); model.getProduit().setDesignation(request.getParameter("designationtxt")); model.getProduit().setPrix(Double.parseDouble( request.getParameter("prixtxt"))); model.getProduit().setQuantite(Integer.parseInt(request.getParameter("qtetxt"))); metier.addProduit(model.getProduit()); request.setAttribute("modelProduit", metier.allProduit()); request.getRequestDispatcher("produit.jsp").forward(request, response); } }
et une classe BDInteraction de connexion à la base des données ...
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136 package mql.com.metier; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.mysql.jdbc.PreparedStatement; import mql.com.util.BDInteraction; import mql.com.util.SingletonConnexion; public class CatalogueMetierProduitImpl extends BDInteraction implements ICatalogueProduitMetier { public CatalogueMetierProduitImpl(String BD) { super(BD); } @Override public void addProduit(Produit p) { connect(); String sql = "INSERT INTO `produit`(`Designation`, `Prix`, `Quantite`) VALUES ('" + p.getDesignation() + "','" + p.getPrix() + "','" + p.getQuantite() + "')"; MJR(sql); disconnect(); } @Override public void upDateProduit(Produit p) { connect(); String sql = "UPDATE `produit` SET `Designation`='" + p.getDesignation() + "',`Prix`='" + p.getPrix() + "',`Quantite`='" + p.getQuantite() + "' WHERE `idProduit`='" + p.getIdProduit() + "'"; System.out.println("le produit dans la commande modifier : " + p.getPrix()); MJR(sql); disconnect(); /* * Connection conn=SingletonConnexion.getConnexion(); try { * PreparedStatement ps=(PreparedStatement) conn.prepareStatement( * "UPDATE `produit` SET `Designation`=?,`Prix`=?,`Quantite`=? WHERE `idProduit`=?" * ); ps.setString(1, p.getDesignation()); ps.setDouble(2, p.getPrix()); * ps.setInt(3, p.getQuantite()); ps.setInt(4, p.getIdProduit()); * ps.executeQuery(); ps.close(); } catch (Exception e) { * * } */ } @Override public void delete(int id) { connect(); String sql = "DELETE FROM `produit` WHERE `idProduit`='" + id + "'"; MJR(sql); disconnect(); } @Override public List<Produit> allProduit() { ArrayList<Produit> produits = new ArrayList<Produit>(); connect(); String sql = "SELECT * FROM `produit`"; ResultSet rs = Select(sql); try { while (rs.next()) { Produit p = new Produit(); p.setDesignation(rs.getString(2)); p.setPrix(rs.getDouble(3)); p.setQuantite(rs.getInt(4)); produits.add(p); } } catch (SQLException e) { e.printStackTrace(); } disconnect(); return produits; } @Override public List<Produit> getProduitByKey(String designation) { ArrayList<Produit> produits = new ArrayList<Produit>(); connect(); String sql = "SELECT * FROM `produit` where `Designation` like '" + designation + "'"; ResultSet rs = Select(sql); try { while (rs.next()) { Produit p = new Produit(); p.setDesignation(rs.getString(2)); p.setPrix(rs.getDouble(3)); p.setQuantite(rs.getInt(4)); produits.add(p); } } catch (SQLException e) { e.printStackTrace(); } disconnect(); if (produits == null) throw new RuntimeException(designation + " N'existe pas"); return produits; } @Override public Produit getProduit(int id) { Produit p = null; connect(); String sql = "SELECT * FROM `produit` where `idProduit`='" + id + "'"; ResultSet rs = Select(sql); try { while (rs.next()) { p = new Produit(); p.setDesignation(rs.getString(2)); p.setPrix(rs.getDouble(3)); p.setQuantite(rs.getInt(4)); } } catch (SQLException e) { e.printStackTrace(); } disconnect(); if (p == null) throw new RuntimeException(id + " => l'id Produit introuvable get By Id"); return p; } }
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 package mql.com.util; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; public class BDInteraction { Connection conn; Statement st; ResultSet rs; String url; public BDInteraction(String BD) { try { Class.forName("com.mysql.jdbc.Driver"); url = "jdbc:mysql://127.0.0.1/" + BD; } catch (Exception e) { e.printStackTrace(); } } public void connect() { try { conn = DriverManager.getConnection(url, "root", ""); st = (Statement) conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } } public void disconnect() { try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } public ResultSet Select(String sql) { try { rs = st.executeQuery(sql); } catch (Exception e) { e.printStackTrace(); } return rs; } public int MJR(String sql) { int nb = 0; try { nb = st.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); } return nb; } public boolean next() { try { return rs.next(); } catch (Exception e) { e.printStackTrace(); } return false; } }
j'ai testé toute les opérations à réaliser et c'est bon
Il y a dans la servlet le variable model qui t elle une classe qui contient mon model
Dans la phase d'ajout la connexion entre la servlet et la page jsp ça marche et tout va bien mais l'opérations d'affichage des données pas ça n'a pas marcher
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class ProduitModel { private String designation; private int quantete; private double prix; private List<Produit> tousProduits = new ArrayList<Produit>(); private Produit produit = new Produit(); //avec les getters et les setters
alors dans DoPost de servlet il y a une partie d'ajout
et il y a une partie pour l'affichage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 model.getProduit().setDesignation(request.getParameter("designationtxt")); model.getProduit().setPrix(Double.parseDouble( request.getParameter("prixtxt"))); model.getProduit().setQuantite(Integer.parseInt(request.getParameter("qtetxt"))); metier.addProduit(model.getProduit());
et la partie html est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 model.setTousProduits(metier.allProduit()); request.setAttribute("modelProduit", model); request.getRequestDispatcher("produit.jsp").forward(request, response);
je n'arrive pas à résoudre le problème Y-a-t-il une personne qui peut m'aider et merci d'avance
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 <b>Afficher les produits</b> <table> <tr> <td>idProduit</td> <td>designation</td> <td>prix</td> <td>quantite</td> </tr> <c:forEach items="${modelProduit.tousProduits }" var="p"> <tr> <td>${p.idProduit }</td> <td>${p.designation }</td> <td>${p.prix }</td> <td>${p.quantite }</td> </tr> </c:forEach> </table>
Partager