Advertisement
daegron

SubscriptionJdbcDAO

Nov 30th, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.59 KB | None | 0 0
  1. package proj.socialNetwork.dao;
  2.  
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.dao.DataAccessException;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import org.springframework.jdbc.core.RowMapper;
  7. import proj.socialNetwork.Subscription;
  8.  
  9. import java.time.Instant;
  10. import java.util.*;
  11. import java.util.logging.Logger;
  12.  
  13. public class SubscriptionJdbcDAO implements SubscriptionDAO<Subscription> {
  14.  
  15.     private static final Logger log = (Logger) LoggerFactory.getLogger(SubscriptionJdbcDAO.class);
  16.     private final JdbcTemplate jdbcTemplate;
  17.  
  18.     RowMapper<Subscription> rowMapper = (rs, rowNum) ->
  19.             new Subscription(
  20.             (UUID) rs.getObject("subscriber_uuid"),
  21.             (UUID) rs.getObject("publisher_uuid"),
  22.             (Instant) rs.getObject("subscription_date"));
  23.  
  24.  
  25.     public SubscriptionJdbcDAO(JdbcTemplate jdbcTemplate){
  26.         this.jdbcTemplate = jdbcTemplate;
  27.     }
  28.  
  29.     @Override
  30.     public List<Subscription> list() {
  31.         var sql = "SELECT subscriber_uuid, publisher_uuid, subscription_date FROM subscription";
  32.         return jdbcTemplate.query(sql, rowMapper);
  33.     }
  34.  
  35.     @Override
  36.     public void create(Subscription subscription) {
  37.         var sql = "INSERT INTO person (subscriber_uuid, publisher_uuid, subscription_date) VALUES (?, ?, ?)";
  38.         var create = jdbcTemplate.update(
  39.                 sql,
  40.                 subscription.getSubscriberUuid(),
  41.                 subscription.getPublisherUuid(),
  42.                 subscription.getSubscriptionDate());
  43.  
  44.         if (create == 1)
  45.             log.info("New subscription was made:" + subscription.getSubscriberUuid()
  46.                     + "subscribed on" + subscription.getPublisherUuid());
  47.     }
  48.  
  49.     @Override
  50.     public List<Subscription> get(UUID uuid ) {
  51.         var sql = "SELECT publisher_uuid, subscription_date FROM subscription WHERE subscriber_uuid = ?";
  52.         List<Subscription> res = new ArrayList<>();
  53.         Subscription get = new Subscription();
  54.         do {
  55.         try {
  56.             get = jdbcTemplate.queryForObject(sql, rowMapper, uuid);
  57.             res.add(jdbcTemplate.queryForObject(sql, rowMapper, uuid));
  58.         } catch (DataAccessException e) {
  59.             log.info("Subscribes from user: " + uuid + " not found" );
  60.         } } while (!Objects.equals(get, new Subscription()));
  61.         return res;
  62.     }
  63.  
  64.     @Override
  65.     public void delete(UUID subscriberUuid, UUID publisherUuid) {
  66.         String sql = "DELETE FROM person WHERE subscriber_uuid = ?, publisher_uuid = ?";
  67.         jdbcTemplate.update(sql, subscriberUuid, publisherUuid);
  68.     }
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement