public Redeem selectRedeemByToken(String token) throws Exception { log.info("Redeem select for {}", token); try (Connection connection = ds.getConnection(); PreparedStatement statement = connection.prepareStatement(selectRedeemToken)) { statement.setString(1, token); try (ResultSet rs = statement.executeQuery()) { connection.commit(); if (rs.next()) { return new Redeem(rs.getString("token"), rs.getString("company"), rs.getBoolean("isRedeemed"), rs.getString("email"), rs.getInt("reward"), rs.getInt("version"), rs.getDate("ts") ); } } } return null; }