package io.trygvis.queue; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class QueueDao { private final Connection connection; public QueueDao(Connection connection) { this.connection = connection; } public Queue findByName(String name) throws SQLException { try (PreparedStatement stmt = connection.prepareStatement("SELECT name, interval FROM queue WHERE name=?")) { stmt.setString(1, name); ResultSet rs = stmt.executeQuery(); return rs.next() ? mapRow(rs) : null; } } public void insert(Queue q) throws SQLException { try (PreparedStatement stmt = connection.prepareStatement("INSERT INTO queue(name, interval) VALUES(?, ?)")) { int i = 1; stmt.setString(i++, q.name); stmt.setLong(i, q.interval); stmt.executeUpdate(); } } public void update(Queue q) throws SQLException { try (PreparedStatement stmt = connection.prepareStatement("UPDATE queue SET interval=? WHERE name=?")) { int i = 1; stmt.setLong(i++, q.interval); stmt.setString(i, q.name); stmt.executeUpdate(); } } public Queue mapRow(ResultSet rs) throws SQLException { return new Queue(rs.getString(1), rs.getLong(2)); } }