diff --git a/src/main/java/com/test/bdd/ClientMysql.java b/src/main/java/com/test/bdd/ClientMysql.java index cf68ac1..0a69050 100644 --- a/src/main/java/com/test/bdd/ClientMysql.java +++ b/src/main/java/com/test/bdd/ClientMysql.java @@ -6,6 +6,7 @@ package com.test.bdd; import com.test.beans.Client; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; @@ -52,4 +53,33 @@ public class ClientMysql { return clients; } + + public int create(Client unClient){ + int id=-1; + String sql = "INSERT INTO client (nom, prenom, mail) VALUES (?,?,?);"; + + try (PreparedStatement prepStmt = laConnexion.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) { + + prepStmt.setString(1, unClient.getNom());//le param. 1 est remplacé par le nom du client + prepStmt.setString(2, unClient.getPrenom()); + prepStmt.setString(3, unClient.getMail()); + + int status = prepStmt.executeUpdate(); + // récupération de la clé auto-générée + if (status > 0) { + try (ResultSet result = prepStmt.getGeneratedKeys()) { + if (result.next()) { // <-- utiliser next() et pas first() + id = result.getInt(1); + } + } + } + prepStmt.close(); + + } catch(SQLException ex){ + System.out.println("SQLException:"+ex.getMessage()); + System.out.println("SQLState:"+ex.getSQLState()); + System.out.println("code Erreur:"+ex.getErrorCode()); + } + return id; + } } diff --git a/src/main/java/com/test/beans/Client.java b/src/main/java/com/test/beans/Client.java index 83b6e05..5337474 100644 --- a/src/main/java/com/test/beans/Client.java +++ b/src/main/java/com/test/beans/Client.java @@ -14,6 +14,12 @@ public class Client { private String prenom; private String mail; + public Client(String nom, String prenom, String mail) { + this.nom = nom; + this.prenom = prenom; + this.mail = mail; + } + public Client(int id, String nom, String prenom, String mail) { this.id = id; this.nom = nom; diff --git a/src/main/java/com/test/forms/NouveauClientForm.java b/src/main/java/com/test/forms/NouveauClientForm.java new file mode 100644 index 0000000..b88f19f --- /dev/null +++ b/src/main/java/com/test/forms/NouveauClientForm.java @@ -0,0 +1,34 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.test.forms; + +import com.test.bdd.ClientMysql; +import com.test.beans.Client; +import jakarta.servlet.http.HttpServletRequest; + +/** + * + * @author steve.maingana + */ +public class NouveauClientForm { + public String resultat; + + public NouveauClientForm() {}; + + public String getResultat() { + return resultat; + } + + public void setResultat(String resultat) { + this.resultat = resultat; + } + + public int verifierClient(HttpServletRequest request) { + Client client = new Client(request.getParameter("nom_client"), request.getParameter("prenom_client"), request.getParameter("mail_client")); + ClientMysql clientDB = new ClientMysql(); + int nouveauClient = clientDB.create(client); + return nouveauClient; + }; +} diff --git a/src/main/java/com/test/servlets/NouveauServlet.java b/src/main/java/com/test/servlets/NouveauServlet.java index 13705fc..e056869 100644 --- a/src/main/java/com/test/servlets/NouveauServlet.java +++ b/src/main/java/com/test/servlets/NouveauServlet.java @@ -4,6 +4,7 @@ */ package com.test.servlets; +import com.test.forms.NouveauClientForm; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; @@ -60,6 +61,7 @@ public class NouveauServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // processRequest(request, response); + request.setAttribute("new_client", false); getServletContext().getRequestDispatcher("/WEB-INF/nouveauClientVue.jsp").forward(request, response); } @@ -74,7 +76,15 @@ public class NouveauServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - processRequest(request, response); + + NouveauClientForm nouveauClient = new NouveauClientForm(); + int idClient = nouveauClient.verifierClient(request); + request.setAttribute("new_client", idClient > -1); + if (idClient > -1) { + response.sendRedirect("/Test2Jakarta/ListeClients"); + } else { + getServletContext().getRequestDispatcher("/WEB-INF/nouveauClientVue.jsp").forward(request, response); + } } /** diff --git a/src/main/webapp/WEB-INF/nouveauClientVue.jsp b/src/main/webapp/WEB-INF/nouveauClientVue.jsp index 43f6400..556d250 100644 --- a/src/main/webapp/WEB-INF/nouveauClientVue.jsp +++ b/src/main/webapp/WEB-INF/nouveauClientVue.jsp @@ -4,6 +4,7 @@ Author : steve.maingana --%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@page contentType="text/html" pageEncoding="UTF-8"%> @@ -11,6 +12,22 @@ <%@include file="jspf/menu.jspf" %>

Création d’un nouveau client

-

Page en construction

+
+
+ Client : + + + + + + + +
+
+ + +

Le client No. ${id_client} a été créé avec succès !

+
+