树形节点大概如下,有任意多个父节点,每个父节点下有任意多个子节点,每个子节点下又有任意多个子节点,,,,,一次类推
如下图所示,我们怎么才能一次获得某个父节点下的所有子节点,或者是所有的节点呢。
说明:每一个节点都是对应数据库中的一条数据,每条数据有自己的id,也有父id,顶级父节点的父id为0
遍历的代码如下:先需要声明一个全局的list
- public List<MqDepartmentPo> getAllChild(String id){
- List<MqDepartmentPo> list1 = mqDepartmentDao.findChild(id);//根据父节点的id查询
- for(MqDepartmentPo mp:list1){ 对结果循环变量
- list.add(mp);//存放到一个全局的list中
- getAllChild(mp.getId());//对其子节点继续遍历,看是否包含子节点
- }
- return list;//最后放回存放所有节点对象的集合
- }// 说明: 如果要遍历全部的节点的话id传值为0
- <span style="white-space:pre"> </span>//下面就是查询数据库的代码了
- public List<MqDepartmentPo> findChild(String id) throws DataAccessException {
- StringBuffer sql = new StringBuffer();
- sql.append("SELECT * FROM mq_department_info WHERE parent_id="+id);
- return this.queryForList(sql.toString(), MqDepartmentPo.class);
- }