Advertisement
Guest User

Untitled

a guest
Oct 16th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.79 KB | None | 0 0
  1. package com.epam.repository;
  2.  
  3. import com.epam.ObjectMapper;
  4. import com.epam.exceptions.UserAlreadyCreatedException;
  5. import com.epam.exceptions.UserNotFoundException;
  6. import com.epam.model.User;
  7. import org.apache.logging.log4j.LogManager;
  8. import org.apache.logging.log4j.Logger;
  9. import org.springframework.dao.EmptyResultDataAccessException;
  10. import org.springframework.jdbc.core.JdbcTemplate;
  11. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
  12. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  13. import org.springframework.jdbc.core.namedparam.SqlParameterSource;
  14.  
  15. import javax.sql.DataSource;
  16.  
  17. import java.sql.SQLException;
  18. import java.util.List;
  19.  
  20.  
  21. public class UserDaoImpl implements UserDao {
  22. private static Logger log = LogManager.getLogger(UserDaoImpl.class.getName());
  23. private NamedParameterJdbcTemplate jdbcTemplateObject;
  24.  
  25. public void setDataSource(DataSource dataSource) {
  26. this.jdbcTemplateObject = new NamedParameterJdbcTemplate(dataSource);
  27. }
  28.  
  29.  
  30. @Override
  31. public User getUser(Integer id) {
  32. // try {
  33. // String SQL = "select * from User where USER_ID = ?";
  34. // User user = jdbcTemplateObject.queryForObject(SQL,
  35. // new Object[]{id}, new ObjectMapper.RowMapperUser());
  36. // log.warn(user.toString());
  37. // return user;
  38. // } catch (EmptyResultDataAccessException e) {
  39. // log.error(e);
  40. // throw new UserNotFoundException(" No such user in database");
  41. // }
  42.  
  43.  
  44. SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("id", id);
  45. User user = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_ID = :id", namedParameters, User.class);
  46. return user;
  47. }
  48.  
  49.  
  50. @Override
  51. public List<User> getAllUsers() {
  52. String SQL = "select * from User";
  53. List<User> usersList = jdbcTemplateObject.query(SQL, new ObjectMapper.RowMapperUser());
  54. for (User user : usersList) {
  55. log.warn(user.toString());
  56. }
  57. return usersList;
  58. }
  59.  
  60. @Override
  61. public User deleteUser(Integer id) {
  62. // try {
  63. // String sql = "SELECT * FROM USER WHERE USER_ID = ?";
  64. // User deletedUser = jdbcTemplateObject.queryForObject(
  65. // sql, new Object[]{id},
  66. // new ObjectMapper.RowMapperUser());
  67. //
  68. // String SQL = "DELETE FROM USER WHERE USER_ID = ?";
  69. // jdbcTemplateObject.update(SQL, id);
  70. // log.warn(deletedUser.toString());
  71. // return deletedUser;
  72. //
  73. // } catch (EmptyResultDataAccessException e) {
  74. // log.error(e);
  75. // throw new UserNotFoundException(" There is not suck user ind Database");
  76. // }
  77. SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("id", id);
  78. User deletedUser = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_ID = :id", namedParameters, User.class);
  79. String SQL = "DELETE FROM USER WHERE USER_ID = :id";
  80. jdbcTemplateObject.update(SQL, namedParameters);
  81. return deletedUser;
  82. }
  83.  
  84. @Override
  85. public User updateUser(User user) throws SQLException {
  86.  
  87. // try {
  88. // getUser(user.getId());
  89. String password = user.getPassword();
  90. String name = user.getName();
  91. String mail = user.getMail();
  92. Integer id = user.getId();
  93. //
  94. // Object[] objects = {password, name, mail, id};
  95. // String sqlStatement = "UPDATE USER SET USER_NAME = ?, USER_MAIL=? ,USER_PASSWORD = ? WHERE USER_ID =?";
  96. // jdbcTemplateObject.update(sqlStatement, objects);
  97. //
  98. // log.warn(user.toString());
  99. // } catch (EmptyResultDataAccessException e) {
  100. // log.error(e);
  101. // throw new UserNotFoundException("No such user in Database");
  102. // }
  103. SqlParameterSource namedParametersUpdated = new MapSqlParameterSource().addValue("id", id).addValue("name", name).
  104. addValue("mail", mail).addValue("password", password);
  105.  
  106. SqlParameterSource namedParametersOld = new MapSqlParameterSource().addValue("id", id).addValue("name", name).
  107. addValue("mail", mail).addValue("password", password);
  108.  
  109. User oldUser = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_ID = :id", namedParametersOld, User.class);
  110. String sqlStatementUpdate = "UPDATE USER SET USER_NAME = :name, USER_MAIL= :mail ,USER_PASSWORD = :password WHERE USER_ID = :id";
  111. jdbcTemplateObject.update(sqlStatementUpdate, namedParametersUpdated);
  112.  
  113. return oldUser;
  114. }
  115.  
  116. @Override
  117. public User getUserByEmail(String mail) {
  118. // try {
  119. // String SQL = "select * from User where USER_MAIL = ?";
  120. // User user = jdbcTemplateObject.queryForObject(SQL,
  121. // new Object[]{mail}, new ObjectMapper.RowMapperUser());
  122. // log.warn(mail);
  123. // return user;
  124. // } catch (EmptyResultDataAccessException e) {
  125. // log.error(e);
  126. // throw new UserNotFoundException(" No such user in database");
  127. // }
  128. SqlParameterSource namedParametersOld = new MapSqlParameterSource().addValue("mail", mail);
  129.  
  130. User user = jdbcTemplateObject.queryForObject("SELECT USER_NAME FROM USER WHERE USER_MAIL = :mail", namedParametersOld, User.class);
  131. String sqlStatementUpdate = "UPDATE USER SET USER_NAME = :name, USER_MAIL= :mail ,USER_PASSWORD = :password WHERE USER_ID = :id";
  132. jdbcTemplateObject.update(sqlStatementUpdate, namedParametersUpdated);
  133.  
  134.  
  135. }
  136.  
  137.  
  138. // Done
  139. @Override
  140. public User createUser(User user) {
  141. boolean flag = true;
  142.  
  143. try {
  144. String sqlFind = "select * from User where USER_MAIL = ?";
  145. jdbcTemplateObject.queryForObject(
  146. sqlFind, new Object[]{user.getMail()},
  147. new ObjectMapper.RowMapperUser());
  148.  
  149. } catch (EmptyResultDataAccessException e) {
  150. String name = user.getName();
  151. String mail = user.getMail();
  152. String password = user.getPassword();
  153. String role = user.getRole();
  154. String SQL = "insert into User (user_name, user_mail, user_role, user_password) values (?, ?, ?, ? )";
  155. jdbcTemplateObject.update(SQL, name, mail, role, password);
  156. log.warn(user.toString());
  157. flag = false;
  158. } finally {
  159. if (flag) {
  160. log.error(" User already in database");
  161. throw new UserAlreadyCreatedException(" User already in database");
  162. }
  163. }
  164. return null;
  165. }
  166.  
  167.  
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement