Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.epam.repository;
- import com.epam.ObjectMapper;
- import com.epam.exceptions.UserAlreadyCreatedException;
- import com.epam.exceptions.UserNotFoundException;
- import com.epam.model.User;
- import org.apache.logging.log4j.LogManager;
- import org.apache.logging.log4j.Logger;
- import org.springframework.dao.EmptyResultDataAccessException;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
- import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
- import org.springframework.jdbc.core.namedparam.SqlParameterSource;
- import javax.sql.DataSource;
- import java.sql.SQLException;
- import java.util.List;
- public class UserDaoImpl implements UserDao {
- private static Logger log = LogManager.getLogger(UserDaoImpl.class.getName());
- private NamedParameterJdbcTemplate jdbcTemplateObject;
- public void setDataSource(DataSource dataSource) {
- this.jdbcTemplateObject = new NamedParameterJdbcTemplate(dataSource);
- }
- @Override
- public User getUser(Integer id) {
- // try {
- // String SQL = "select * from User where USER_ID = ?";
- // User user = jdbcTemplateObject.queryForObject(SQL,
- // new Object[]{id}, new ObjectMapper.RowMapperUser());
- // log.warn(user.toString());
- // return user;
- // } catch (EmptyResultDataAccessException e) {
- // log.error(e);
- // throw new UserNotFoundException(" No such user in database");
- // }
- SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("id", id);
- User user = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_ID = :id", namedParameters, User.class);
- return user;
- }
- @Override
- public List<User> getAllUsers() {
- String SQL = "select * from User";
- List<User> usersList = jdbcTemplateObject.query(SQL, new ObjectMapper.RowMapperUser());
- for (User user : usersList) {
- log.warn(user.toString());
- }
- return usersList;
- }
- @Override
- public User deleteUser(Integer id) {
- // try {
- // String sql = "SELECT * FROM USER WHERE USER_ID = ?";
- // User deletedUser = jdbcTemplateObject.queryForObject(
- // sql, new Object[]{id},
- // new ObjectMapper.RowMapperUser());
- //
- // String SQL = "DELETE FROM USER WHERE USER_ID = ?";
- // jdbcTemplateObject.update(SQL, id);
- // log.warn(deletedUser.toString());
- // return deletedUser;
- //
- // } catch (EmptyResultDataAccessException e) {
- // log.error(e);
- // throw new UserNotFoundException(" There is not suck user ind Database");
- // }
- SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("id", id);
- User deletedUser = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_ID = :id", namedParameters, User.class);
- String SQL = "DELETE FROM USER WHERE USER_ID = :id";
- jdbcTemplateObject.update(SQL, namedParameters);
- return deletedUser;
- }
- @Override
- public User updateUser(User user) throws SQLException {
- // try {
- // getUser(user.getId());
- String password = user.getPassword();
- String name = user.getName();
- String mail = user.getMail();
- Integer id = user.getId();
- //
- // Object[] objects = {password, name, mail, id};
- // String sqlStatement = "UPDATE USER SET USER_NAME = ?, USER_MAIL=? ,USER_PASSWORD = ? WHERE USER_ID =?";
- // jdbcTemplateObject.update(sqlStatement, objects);
- //
- // log.warn(user.toString());
- // } catch (EmptyResultDataAccessException e) {
- // log.error(e);
- // throw new UserNotFoundException("No such user in Database");
- // }
- SqlParameterSource namedParametersUpdated = new MapSqlParameterSource().addValue("id", id).addValue("name", name).
- addValue("mail", mail).addValue("password", password);
- SqlParameterSource namedParametersOld = new MapSqlParameterSource().addValue("id", id).addValue("name", name).
- addValue("mail", mail).addValue("password", password);
- User oldUser = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_ID = :id", namedParametersOld, User.class);
- String sqlStatementUpdate = "UPDATE USER SET USER_NAME = :name, USER_MAIL= :mail ,USER_PASSWORD = :password WHERE USER_ID = :id";
- jdbcTemplateObject.update(sqlStatementUpdate, namedParametersUpdated);
- return oldUser;
- }
- @Override
- public User getUserByEmail(String mail) {
- // try {
- // String SQL = "select * from User where USER_MAIL = ?";
- // User user = jdbcTemplateObject.queryForObject(SQL,
- // new Object[]{mail}, new ObjectMapper.RowMapperUser());
- // log.warn(mail);
- // return user;
- // } catch (EmptyResultDataAccessException e) {
- // log.error(e);
- // throw new UserNotFoundException(" No such user in database");
- // }
- SqlParameterSource namedParametersOld = new MapSqlParameterSource().addValue("mail", mail);
- User user = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_MAIL = :mail", namedParametersOld, User.class);
- String sqlStatementUpdate = "UPDATE USER SET USER_NAME = :name, USER_MAIL= :mail ,USER_PASSWORD = :password WHERE USER_ID = :id";
- jdbcTemplateObject.update(sqlStatementUpdate, namedParametersUpdated);
- }
- // Done
- @Override
- public User createUser(User user) {
- boolean flag = true;
- try {
- String sqlFind = "select * from User where USER_MAIL = ?";
- jdbcTemplateObject.queryForObject(
- sqlFind, new Object[]{user.getMail()},
- new ObjectMapper.RowMapperUser());
- } catch (EmptyResultDataAccessException e) {
- String name = user.getName();
- String mail = user.getMail();
- String password = user.getPassword();
- String role = user.getRole();
- String SQL = "insert into User (user_name, user_mail, user_role, user_password) values (?, ?, ?, ? )";
- jdbcTemplateObject.update(SQL, name, mail, role, password);
- log.warn(user.toString());
- flag = false;
- } finally {
- if (flag) {
- log.error(" User already in database");
- throw new UserAlreadyCreatedException(" User already in database");
- }
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement