Bonjour je suis actuellement en stage dans une entreprise de développement informatique ils m'ont donné la tache de programmer une application de gestion des cartes d'abonnements des trains de l'oncf , bref tout allé bien jusqu'à ce que je bloc sur cette erreur bon voilà je m'explique j'ai crée une interface qui permet au administrateur de crée des vendeurs ( vendeurs de cartes d'abonnement des trains) voici l'interface :
voici mon code jsp :
Code jsp : 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 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="Css/Css_creation_vendeur.css" rel="stylesheet"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <title>JSP Page</title> </head> <body> <div id="header_creation_vendeur"> <h2>Creation vendeur</h2> </div> <form method="post" action="Creation_vendeur"> <input type="hidden" name="action" value="ajouter"/> <input type="hidden" value="modifier" name="action"/> <div id="div_cv1"> <div class="form-group form-inline"> <label>Matricule</label> <input type="text" name="matricule" class="form-control form-control-md" id="matricule"/> <input type="submit" class="btn btn-warning btn-lg" action="" value="Rechercher" id="rech"> </div> </div> <div id="div_cv2"> <div class="form-group form-inline"> <label>Matricule</label> <input type="text" name="matricule2" class="form-control form-control-md" id="matricule2"/> </div> <div class="form-group form-inline"> <label>Login</label> <input type="text" name="logincv" class="form-control form-control-md" id="logincv"/> </div> <div class="form-group form-inline"> <label>Mot de passe</label> <input type="password" name="password" class="form-control form-control-md" id="password"/> </div> <div class="form-group form-inline"> <label>Role</label> <div class="form-check-input"> <input type="radio" class='form-check-input' value="2" name='radio' id="radiovendeur"/> </div> <label class="form-check-label"> Vendeur </label> <div class="form-check-input"> <input type="radio" class='form-check-input' value="1" name='radio' id="radioadmin"/> </div> <label class="form-check-label"> Administrateur </label> </div> <div class="form-group form-inline"> <label>Etat</label> <div class="form-check-input"> <input type="radio" class='form-check-input' value="0" name='radio2' id="radioactif"/> </div> <label class="form-check-label"> Actif </label> <div class="form-check-input"> <input type="radio" class='form-check-input' value="1" name='radio2' id="radioinactif"/> </div> <label class="form-check-label"> Inactif </label> </div> </div> <div id="buttoncv"> <div class="form-group form-inline"> <input type="submit" class="btn btn-warning btn-lg" action="ajouter" value="Ajouter"> <input type="reset" class="btn btn-warning btn-lg" value="Effacer"> <input type="submit" class="btn btn-warning btn-lg" action="modifier" value="modifier"> </div> </div> </form> </body> </html>
J'ai crée une servlet ou je souhaite mettre tout mon code ( d'ajout , modification , recherche) c'est pour celà que j'ai mis pour le moment 2 input de type hidden voici ma servlet :
Pour que vous comprenez trés bien j'ai 2 tables la premiere vendeurs la voici :
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 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String matricule2=request.getParameter("matricule2"); String logincv=request.getParameter("logincv"); String password=request.getParameter("password"); String radio= request.getParameter("radio"); String radio2=request.getParameter("radio2"); Connection c=cnx.getcnx(); if(request.getParameter("action").equals("ajouter")){ try { PreparedStatement st=c.prepareStatement("insert into vendeurs values (null,?,?,?,null,null,?,null)",Statement.RETURN_GENERATED_KEYS); st.setString(1, logincv); st.setString(2, password); st.setString(3, matricule2); st.setString(4, radio2); st.executeUpdate(); int key=-1; ResultSet rs = st.getGeneratedKeys(); if (rs.next()) { key = rs.getInt(1); } System.out.print(key); PreparedStatement st1=c.prepareStatement("insert into vendeurinroles values (null,?,?)"); st1.setInt(1, key); st1.setInt(2, Integer.parseInt(radio)); int res=st1.executeUpdate(); if(res>0){ System.out.println("ajouter avec succes"); } else { System.out.println("erreur"); } } catch(Exception ex){ ex.printStackTrace(); } } else if(request.getParameter("action").equals("modifier")){ try{ PreparedStatement stm=c.prepareStatement("update vendeurs set login=? , password=? , isactive=? where matricule=?",Statement.RETURN_GENERATED_KEYS); stm.setString(1, logincv); stm.setString(2, password); stm.setString(3, radio2); stm.setString(4, matricule2); stm.executeUpdate(); int keym=-1; ResultSet rs = stm.getGeneratedKeys(); if (rs.next()) { keym = rs.getInt(1); } System.out.print(keym); PreparedStatement stm2=c.prepareStatement("update vendeurinroles set role_id=? where vendeur_id=?"); stm2.setInt(1, Integer.parseInt(radio)); stm2.setInt(2, keym); int resmodification=stm2.executeUpdate(); if(resmodification>0){ System.out.println("Modifier avec succes"); } else { System.out.println("erreur"); } } catch(Exception ex){ ex.printStackTrace(); } } getServletContext().getRequestDispatcher("/WEB-INF/Creation_vendeur.jsp").forward(request, response); }
et la table vendeurinroles la voici :
comme vous le vouyez le role il n'est pas dans la table vendeurs mais bien dans la table vendeurinroles c'est pour celà que dans l'insertion par exemple j'insert dans la table vendeurs on récupérent l'id du vendeur inserer et apres j'insere au vendeurs crée un role dans la table vendeurinroles avec l'id que j'ai récupére c'est pour cela que j'ai mis ce code :
bref j'espere que vous m'aviez compris, bon passent au probléme maintenant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int key=-1; ResultSet rs = st.getGeneratedKeys(); if (rs.next()) { key = rs.getInt(1); }
le premier c'est que meme si je clic sur le bouton modifier il m'execute le code de l'ajout meme si j'ai mis la condition : else if(request.getParameter("action").equals("modifier")){
il ne sors pas de la premier condition qui est de l'ajout.
le deuxieme probleme c'est que meme si je met le code de l'insertion en commentaire il passe a la deuxieme condtion qui est de la modification oui mais il ne me modifie rien il m'affiche :
Infos: -1
Infos: erreur
ce qui signifie qu'il y a une erreur dans mon code mais je ne sais pas laquel !!!
svp si quelqu'un peut m'aider le plus tot possible !!!
et merci beaucoup en avance !
Partager