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;
}