public void selectbranchtree(){
ApplicationContext actx = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-dao.xml");
FyBranchMapper mapper = actx.getBean(FyBranchMapper.class);
List<BranchTree> list = mapper.selectbranchtree();
System.out.println(list);
System.out.println(list.get(0).getBbLevel());
List<BranchTree> children = createTree(list);
System.out.println(children);
}
public List<BranchTree> createTree(List<BranchTree> list) {
List<BranchTree> children = new ArrayList<BranchTree>();
// 当等级最高时,停止排序
for (BranchTree node : list) {
if ("0".equals(node.getBbLevel())) {
initChildren(node, list);
children.add(node);
}
}
return children;
}
public static void initChildren(BranchTree treeNode, List<BranchTree> list) {
List<BranchTree> children = new ArrayList<BranchTree>();
// 当等级最高时,停止排序
// 将最低级别的放到数组中
for (BranchTree node : list) {
int parentId = treeNode.getBbId();
if (parentId == node.getBbParentid()){
initChildren(node, list);
children.add(node);
}
}
treeNode.setChildren(children);
}
}
结果:
[BranchTree [bbId=1, bbParentid=0, bbName=总部, bbLevel=0, children=[]], BranchTree [bbId=2, bbParentid=1, bbName=区域, bbLevel=1, children=[]], BranchTree [bbId=3, bbParentid=2, bbName=中心路店, bbLevel=1, children=[]], BranchTree [bbId=4, bbParentid=2, bbName=共和新路店, bbLevel=3, children=[]], BranchTree [bbId=5, bbParentid=1, bbName=财务, bbLevel=2, children=[]], BranchTree [bbId=6, bbParentid=1, bbName=开发, bbLevel=3, children=[]]]
0
[BranchTree [bbId=1, bbParentid=0, bbName=总部, bbLevel=0, children=[BranchTree [bbId=2, bbParentid=1, bbName=区域, bbLevel=1, children=[BranchTree [bbId=3, bbParentid=2, bbName=中心路店, bbLevel=1, children=[]], BranchTree [bbId=4, bbParentid=2, bbName=共和新路店, bbLevel=3, children=[]]]], BranchTree [bbId=5, bbParentid=1, bbName=财务, bbLevel=2, children=[]], BranchTree [bbId=6, bbParentid=1, bbName=开发, bbLevel=3, children=[]]]]]