1. 分爲3層:(其實業務邏輯層依然混亂)
Category代表類別,是數據模型。
CategoryDAO是數據訪問層,和存儲系統打交道,不一定是數據庫,可以是文件系統等等。
CategoryManager?提供服務的層次。(暫時無)
從數據庫當中返回一個list,裏面已經把樹狀結構排好。在後臺做好遞歸,當list取出來的時候,已經拍好順序了。
每個節點上都有一個grade值,通過這個grade值就可以知道應該縮進幾格。
通過一個遞歸去找到相應的樹:
如果不是葉子節點,就調用遞歸方法,就可以解決這個問題。等於是反覆執行了select語句,通過當前的id作爲pid送過去,找到當前節點的所有的子節點。這個算法還是不錯的。
loadById(int id)通過id得到
public Category loadById(int id) {
Category c = null;
Connection conn = DB.getConn();
String sql = "select *from category where id = " + id;
Statement stmt = DB.getStatement(conn);
ResultSet rs = DB.getResultSet(stmt, sql);
try {
if (rs.next()) {
c = this.getCategoryFromRs(rs);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(rs);
DB.close(stmt);
DB.close(conn);
}
return c;
}