From 071b2f40103618966ae803b8705730c476091f0e Mon Sep 17 00:00:00 2001 From: jleroy Date: Mon, 22 Apr 2024 15:57:51 +0200 Subject: [PATCH] Formulaire incription utilisateur --- build.gradle | 2 + .../controllers/InscriptionController.java | 10 +++++ .../fr/eni/enchere/dall/UserRepository.java | 2 +- .../eni/enchere/dall/UserRepositoryImpl.java | 38 ++++++++++++++++++- src/main/resources/application.properties | 4 ++ src/main/resources/templates/inscription.html | 9 ++--- 6 files changed, 56 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 031c96a..c024d1e 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,8 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' + implementation 'org.springframework.boot:spring-boot-starter-jdbc' + implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.4' } tasks.named('test') { diff --git a/src/main/java/fr/eni/enchere/controllers/InscriptionController.java b/src/main/java/fr/eni/enchere/controllers/InscriptionController.java index aa1ed66..1b276fd 100644 --- a/src/main/java/fr/eni/enchere/controllers/InscriptionController.java +++ b/src/main/java/fr/eni/enchere/controllers/InscriptionController.java @@ -5,6 +5,8 @@ import fr.eni.enchere.bo.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @Controller @@ -22,4 +24,12 @@ public class InscriptionController { model.addAttribute("user", new User()); return "inscription"; } + + @PostMapping("/newUser") + public String setUser(@ModelAttribute User user) { + System.out.println(user.getId()); + //userService.setUtilisateur(user); + return "redirect:/accueil"; + } + } diff --git a/src/main/java/fr/eni/enchere/dall/UserRepository.java b/src/main/java/fr/eni/enchere/dall/UserRepository.java index 990e3fb..efee7d3 100644 --- a/src/main/java/fr/eni/enchere/dall/UserRepository.java +++ b/src/main/java/fr/eni/enchere/dall/UserRepository.java @@ -7,7 +7,7 @@ import java.util.List; public interface UserRepository { List findAll(); User findById(int id); - User save(User utilisateur); + void save(User utilisateur); void edit(int id); void delete(int id); } diff --git a/src/main/java/fr/eni/enchere/dall/UserRepositoryImpl.java b/src/main/java/fr/eni/enchere/dall/UserRepositoryImpl.java index 3fcc97a..dfa25d2 100644 --- a/src/main/java/fr/eni/enchere/dall/UserRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dall/UserRepositoryImpl.java @@ -1,6 +1,11 @@ package fr.eni.enchere.dall; import fr.eni.enchere.bo.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; +import org.springframework.jdbc.support.GeneratedKeyHolder; +import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import java.util.List; @@ -8,6 +13,13 @@ import java.util.List; @Repository public class UserRepositoryImpl implements UserRepository { + private final JdbcTemplate jdbcTemplate; + + @Autowired + public UserRepositoryImpl(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + @Override public List findAll() { return List.of(); @@ -19,8 +31,30 @@ public class UserRepositoryImpl implements UserRepository { } @Override - public User save(User utilisateur) { - return null; + public void save(User utilisateur) { + if (utilisateur.getId() == 0) { + String sql = "insert into UTILISATEURS (pseudo, nom, prenom, email, telephone," + + " rue, code_postal, ville, mot_de_passe, credit, administrateur)" + + " values (:pseudo, :nom, :prenom, :email, :telephone," + + " :rue, :code_postal, :ville, :mot_de_passe, 0, false)"; + + KeyHolder keyHolder = new GeneratedKeyHolder(); + MapSqlParameterSource parameters = new MapSqlParameterSource(); + parameters.addValue("pseudo", utilisateur.getPseudo()); + parameters.addValue("nom", utilisateur.getNom()); + parameters.addValue("prenom", utilisateur.getPrenom()); + parameters.addValue("email", utilisateur.getEmail()); + parameters.addValue("telephone", utilisateur.getTelephone()); + parameters.addValue("rue", utilisateur.getRue()); + parameters.addValue("code_postal", utilisateur.getCode_postal()); + parameters.addValue("ville", utilisateur.getVille()); + parameters.addValue("mot_de_passe", utilisateur.getPassword()); + + jdbcTemplate.update(sql, parameters, keyHolder ,new String[] {"id"} ); + utilisateur.setId(keyHolder.getKey().intValue()); + }else { + //Mettre à jour + } } @Override diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..f99fe59 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,5 @@ +spring.datasource.url=jdbc:mariadb://91.121.54.36:3306/eni_enchere +spring.datasource.username=eni +spring.datasource.password=Pa$$w0rd +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver \ No newline at end of file diff --git a/src/main/resources/templates/inscription.html b/src/main/resources/templates/inscription.html index c6eca19..faf70fa 100644 --- a/src/main/resources/templates/inscription.html +++ b/src/main/resources/templates/inscription.html @@ -1,8 +1,7 @@ - + - Inscription @@ -125,11 +124,9 @@ - - - + - + Annuler