infoweb.
java.
.
java.
.
infoweb.
.
net.
.
.
net.
.
.
net.
.
.
org.
.
.
.
org.
.
.
.
.
30 31 32 /**
33 * 構(gòu)造函數(shù)
34 */ 35 public BoardTreeDAOImpl
() { 36 super();
37 }
38 39 40 /**
41 * 通過ID取得版塊
42 * @param id String
43 * @return Board
44 */ 45 46 public Board getBoardById
(String id
) { 47 Board board = (Board) getHibernateTemplate().load(Board.class, id);
48 return board;
49 }
50 51 52 /**
53 * 取根葉
54 * @return Iterator
55 */ 56 public Iterator getRoots
() throws HibernateException
{ 57 String queryString =
58 "select board from Board as board where board.parentId=‘root‘ order by board.id desc";
59 List roots = getHibernateTemplate().find(queryString);
60 return roots.iterator();
61 }
62 63 64 /**
65 * 存根葉
66 * @param board Board
67 */ 68 public void setRoot
(Board board
) { 69 board.setParentId("root");
70 getHibernateTemplate().save(board);
71 }
72 73 74 /**
75 * 取子葉
76 * @param parentid String
77 * @return List
78 */ 79 public Iterator getChildren
(String parentid
) { 80 /*
81 String queryString =
82 "select board as Board where board.parent_id=‘parentid‘ order by board.id desc";
83 List children = getHibernateTemplate().find(queryString);
84 return children;
85 */
86 Board parent = (Board) getHibernateTemplate().load(Board.class, parentid);
87 return parent.getChildren().iterator();
88 }
89 90 91 /**
92 * 取子葉數(shù)
93 * @param parentid String
94 * @return int
95 */ 96 97 public int getChildrenCount
(String parentid
) { 98 /*
99 String queryString =
100 "select count(*) Board where board.parent_id=‘parentid‘ order by board.id desc";
101 List children = getHibernateTemplate().find(queryString);
102 int count = ((Integer) children.iterator().next()).intValue();
103 return count;
104 */
105 Board parent = (Board) getHibernateTemplate().load(Board.class, parentid);
106 int count = parent.getChildren().size();
107 return count;
108 }
109 110 111 /**
112 * 存子葉
113 * @param parentLeaf Leaf
114 */ 115 public void setChild
(Board board,
String parentid
) { 116 board.setParentId(parentid);
117 getHibernateTemplate().save(board);
118 }
119 120 121 /**
122 *
123 * 刪除該葉和它的子葉
124 * @param board Board
125 */ 126 public void deleteBranch
(Board board
) { 127 getHibernateTemplate().delete(board);
128 }
129 130 131 /**
132 * 根據(jù)子葉得到父葉
133 * @param child Board
134 * @return Board
135 */ 136 public Board getParentByChild
(Board child
) { 137 String parentId = child.getParentId();
138 Board parent = (Board) getHibernateTemplate().load(Board.class, parentId);
139 return parent;
140 }
141 142 143 /**
144 * 通過子ID得到父葉
145 * @param id String
146 * @return Board
147 */ 148 public Board getParentByChildId
(String id
) { 149 Board child = (Board) getHibernateTemplate().load(Board.class, id);
150 Board parent = (Board) getHibernateTemplate().load(Board.class,child.getParentId());
151 return parent;
152 }
153 }