package fr.eni.enchere.dal; 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.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class UserRepositoryImpl implements UserRepository { private final JdbcTemplate jdbcTemplate; private NamedParameterJdbcTemplate namedParameterJdbcTemplate; @Autowired public UserRepositoryImpl(JdbcTemplate jdbcTemplate, NamedParameterJdbcTemplate namedJdbcTemplate) { this.jdbcTemplate = jdbcTemplate; this.namedParameterJdbcTemplate = namedJdbcTemplate; } @Override public List findAll() { return List.of(); } @Override public User findById(int id) { return null; } @Override 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)"; 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()); KeyHolder keyHolder = new GeneratedKeyHolder(); namedParameterJdbcTemplate.update(sql, parameters, keyHolder, new String[] {"no_utilisateur"}); if (keyHolder.getKey() != null) { utilisateur.setId(keyHolder.getKey().intValue()); } }else { //Mettre à jour } } @Override public void delete(int id) { } }