package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import model.Criterion; /** * * @author mark */ public class ScheduleDAO { private static final Logger logger = Logger.getLogger(ScheduleDAO.class.getName()); public List<String> getCategories() { final List<String> categories = new ArrayList<>(); try { try ( Connection con = JdbcConnection.getConnection(); PreparedStatement stmt = con.prepareStatement("select category from category order by sort_order"); ResultSet rs = stmt.executeQuery()) { while (rs.next()) { String category = rs.getString("category"); categories.add(category); } } } catch (SQLException e) { logger.log(Level.SEVERE, e.getLocalizedMessage(), e); } return categories; } public List<Criterion> getCriteria(String category) { List<Criterion> criteria = new ArrayList<>(); try { try ( Connection con = JdbcConnection.getConnection(); PreparedStatement stmt = con.prepareStatement("select * from criterion where category = ? order by sort_order");) { stmt.setString(1, category); ResultSet rs = stmt.executeQuery(); criteria = loadCriteria(rs); } } catch (SQLException e) { logger.log(Level.SEVERE, e.getLocalizedMessage(), e); } return criteria; } static List<Criterion> loadCriteria(ResultSet rs) { final List<Criterion> criteria = new ArrayList<>(); try { while (rs.next()) { String criterion = rs.getString("criterion"); String description = rs.getString("description"); criteria.add(new Criterion(criterion, description)); } } catch (SQLException e) { logger.log(Level.SEVERE, e.getLocalizedMessage(), e); } return criteria; } }