Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package proj.socialNetwork.dao;
- import org.slf4j.LoggerFactory;
- import org.springframework.dao.DataAccessException;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.RowMapper;
- import proj.socialNetwork.Subscription;
- import java.time.Instant;
- import java.util.*;
- import java.util.logging.Logger;
- public class SubscriptionJdbcDAO implements SubscriptionDAO<Subscription> {
- private static final Logger log = (Logger) LoggerFactory.getLogger(SubscriptionJdbcDAO.class);
- private final JdbcTemplate jdbcTemplate;
- RowMapper<Subscription> rowMapper = (rs, rowNum) ->
- new Subscription(
- (UUID) rs.getObject("subscriber_uuid"),
- (UUID) rs.getObject("publisher_uuid"),
- (Instant) rs.getObject("subscription_date"));
- public SubscriptionJdbcDAO(JdbcTemplate jdbcTemplate){
- this.jdbcTemplate = jdbcTemplate;
- }
- @Override
- public List<Subscription> list() {
- var sql = "SELECT subscriber_uuid, publisher_uuid, subscription_date FROM subscription";
- return jdbcTemplate.query(sql, rowMapper);
- }
- @Override
- public void create(Subscription subscription) {
- var sql = "INSERT INTO person (subscriber_uuid, publisher_uuid, subscription_date) VALUES (?, ?, ?)";
- var create = jdbcTemplate.update(
- sql,
- subscription.getSubscriberUuid(),
- subscription.getPublisherUuid(),
- subscription.getSubscriptionDate());
- if (create == 1)
- log.info("New subscription was made:" + subscription.getSubscriberUuid()
- + "subscribed on" + subscription.getPublisherUuid());
- }
- @Override
- public List<Subscription> get(UUID uuid ) {
- var sql = "SELECT publisher_uuid, subscription_date FROM subscription WHERE subscriber_uuid = ?";
- List<Subscription> res = new ArrayList<>();
- Subscription get = new Subscription();
- do {
- try {
- get = jdbcTemplate.queryForObject(sql, rowMapper, uuid);
- res.add(jdbcTemplate.queryForObject(sql, rowMapper, uuid));
- } catch (DataAccessException e) {
- log.info("Subscribes from user: " + uuid + " not found" );
- } } while (!Objects.equals(get, new Subscription()));
- return res;
- }
- @Override
- public void delete(UUID subscriberUuid, UUID publisherUuid) {
- String sql = "DELETE FROM person WHERE subscriber_uuid = ?, publisher_uuid = ?";
- jdbcTemplate.update(sql, subscriberUuid, publisherUuid);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement