Java back-end server programming; includes various exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
1.9 KiB

  1. package com.example.sqltest.model;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.jdbc.core.JdbcTemplate;
  5. import org.springframework.jdbc.core.RowMapper;
  6. import org.springframework.stereotype.Repository;
  7. @Repository
  8. public class CustomerDAOImpl implements CustomerDAO {
  9. @Autowired
  10. private JdbcTemplate jdbcTemplate;
  11. // Setters
  12. public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  13. this.jdbcTemplate = jdbcTemplate;
  14. }
  15. // Getters
  16. public JdbcTemplate getJdbcTemplate() {
  17. return this.jdbcTemplate;
  18. }
  19. // Abstract methods
  20. @Override
  21. public void save(Customer customer) {
  22. String sqlQuery = "INSERT INTO CUSTOMER(" +
  23. "firstname" + "," +
  24. "lastname" + "," +
  25. "sex" + "," +
  26. "language" + "," +
  27. "engagement" + "," +
  28. "email" + "," +
  29. "phone" +
  30. ") VALUES (?,?,?,?,?,?,?)";
  31. Object[] sqlData = new Object[] {
  32. customer.getFirstName(),
  33. customer.getLastName(),
  34. customer.getSex(),
  35. customer.getLanguage(),
  36. customer.getEngagement(),
  37. customer.getEmail(),
  38. customer.getPhone()
  39. };
  40. jdbcTemplate.update(sqlQuery, sqlData);
  41. }
  42. @Override
  43. public Customer findById(Long id) {
  44. String sqlQuery = "SELECT * FROM CUSTOMER WHERE ID = ?";
  45. Object[] queryData = new Object[] { id };
  46. RowMapper<Customer> mapper = new CustomerMapper();
  47. Customer customer = jdbcTemplate.queryForObject(sqlQuery, queryData, mapper);
  48. return customer;
  49. }
  50. @Override
  51. public List<Customer> findAll() {
  52. String sqlQuery = "SELECT * FROM CUSTOMER";
  53. RowMapper<Customer> mapper = new CustomerMapper();
  54. List<Customer> customers = jdbcTemplate.query(sqlQuery, mapper);
  55. return customers;
  56. }
  57. @Override
  58. public void dropAll() {
  59. String sqlQueryDelete = "DELETE FROM CUSTOMER";
  60. String sqlQueryResetId = "ALTER TABLE CUSTOMER AUTO_INCREMENT = 1";
  61. jdbcTemplate.execute(sqlQueryDelete);
  62. jdbcTemplate.execute(sqlQueryResetId);
  63. }
  64. }