Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.teama; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.logging.Level; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; /** * * @author bamidei */ public class IssueListDA { private static ArrayList<Issue> issueList; static public ArrayList<Issue> getIssueList() { if (issueList == null) load(); return issueList; } static public ArrayList<Issue> getIssueList(final int sortBy) { Collections.sort(getIssueList(), new Comparator<Issue>() { @Override public int compare(Issue o1, Issue o2) { int result; switch (sortBy) { /*Severity Sort */ case 1: result = o1.getPriorityLabel().compareTo(o2.getPriorityLabel()); break; /*Assignee Sort */ case 2: result = o1.getAssignToName().compareTo(o2.getAssignToName()); break; /*Submitter Sort */ case 3: result = o1.getSubmitByName().compareTo(o2.getSubmitByName()); break; /*Default sort by statsu */ default: result = o1.getStatus().compareTo(o2.getStatus()); break; } return result; } }); return issueList; } static public Issue getIssue(final int id) { if (issueList != null) { /* Use collectionUtils to find the matching App from the list */ return (Issue) CollectionUtils.find(issueList, new Predicate() { @Override public boolean evaluate(Object o) { Issue i = (Issue) o; return i.getIssueId() == id; } }); } else { return null; } } static public boolean load() { boolean res; /* Get a new list to populate - even if we had already populated, this will throw away the old and replace with a new 'load'. */ issueList = new ArrayList<Issue>(); /*Simple get all of the defects query. We'll sort and filter as necessary using java collection operations. */ String query = "SELECT * FROM BugTracker.defects"; try { Connection connection = DBconnect.getConnection(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(query); if (rs != null) { while (rs.next()) { Issue i; i = new Issue(rs.getInt("request_id"), rs.getInt("app_no"), rs.getString("summary"), rs.getString("descrp"), rs.getInt("priority_no"), rs.getInt("submitter"), rs.getString("created"), rs.getInt("assignee"), rs.getInt("status_no")); issueList.add(i); } } connection.close(); statement.close(); res = true; } catch (SQLException ex) { DBconnect.getLogger().log(Level.SEVERE, "Error reading issue list from DB", ex); res = false; } return res; } }