Newer
Older
marking / src / dao / ScheduleDAO.java
Mark on 6 Jun 2014 1 KB Initial commit.
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;
	}

}