从数据库查询出一颗”目录树“
数据库中有一张菜单表,要形成如上面所示的目录树的结构,该怎么办呢?
主要是一个迭代,代码如下:
/************
* 获得菜单项迭代集合
* @param pid 某个菜单项的父节点nodekey
* @return List<TMenuset> 迭代后的菜单目录树集合
*/
public List<TMenuset> getMenuList(String pid) {
// TODO Auto-generated method stub
List<TMenuset> listAll = new ArrayList<TMenuset>();
String sql = "select id,nodekey,nodename,nodetype from t_menuset where pid = ? and enable = 1 order by orderid";
List<TMenuset> list = this.baseDao.getSimpleJdbcTemplate()
.query(sql, BeanPropertyRowMapper.newInstance(TMenuset.class), pid);
for (TMenuset node : list) {
//迭代
node.setChildren(this.getMenuList(node.getNodekey()));
listAll.add(node);
}
return listAll;
}