Moved postage of messages into a reusable standalone implementation
[demos/kafka/outbox] / postage / src / main / java / de / juplo / kafka / outbox / postage / OutboxRepository.java
1 package de.juplo.kafka.outbox.postage;
2
3 import lombok.AllArgsConstructor;
4 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
5 import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
6 import org.springframework.stereotype.Repository;
7
8 import java.sql.Timestamp;
9 import java.time.ZonedDateTime;
10
11
12 @Repository
13 @AllArgsConstructor
14 public class OutboxRepository
15 {
16   private static final String SQL_UPDATE =
17       "INSERT INTO outbox (key, value, issued) VALUES (:key, :value, :issued)";
18
19   private final NamedParameterJdbcTemplate jdbcTemplate;
20
21
22   public void save(String key, String value, ZonedDateTime issued)
23   {
24     MapSqlParameterSource parameters = new MapSqlParameterSource();
25     parameters.addValue("key", key);
26     parameters.addValue("value", value);
27     parameters.addValue("issued", Timestamp.from(issued.toInstant()));
28     jdbcTemplate.update(SQL_UPDATE, parameters);
29   }
30 }