数据库组织树结构设计
java实现代码,拼接xml组织树
public String loadAreaTree() {
StringBuffer areaTreeStr = new StringBuffer();
areaTreeStr.append("<>");
//查询出第一级区域 所有的国家
List<Area> countryList = hibernateTemplate.getSessionFactory().openSession().createQuery("from Area p where p.parentAreaNo = '#' and p.isVisible ='true' order by p.leafNo").list();
if(countryList != null && countryList.size() > 0){
for (Area countryArea : countryList) {
areaTreeStr.append("<country areaName=\""+countryArea.getAreaName()+"\" urls=\""+countryArea.getUrls()+"\">");
//查询出第二级区域 所有的省份(该国家下)
List<Area> provinceAreaList = hibernateTemplate.getSessionFactory().openSession()
.createQuery("from Area p where p.parentAreaNo =:countryAreaNo and p.isVisible ='true' order by p.leafNo")
.setString("countryAreaNo", countryArea.getAreaNO().toString()).list();
if(provinceAreaList != null && provinceAreaList.size() > 0){
for (Area provinceArea : provinceAreaList) {
areaTreeStr.append("<province areaName=\""+provinceArea.getAreaName()+"\" urls=\""+provinceArea.getUrls()+"\">");
//查询出第三级区域 所有的城市(该省份下)
List<Area> cityAreaList = hibernateTemplate.getSessionFactory().openSession()
.createQuery("from Area p where p.parentAreaNo =:provinceAreaNo and p.isVisible ='true' order by p.leafNo")
.setString("provinceAreaNo", provinceArea.getAreaNO().toString()).list();
if(cityAreaList != null && cityAreaList.size() > 0){
for (Area cityArea : cityAreaList) {
areaTreeStr.append("<city areaName=\""+cityArea.getAreaName()+"\" urls=\""+cityArea.getUrls()+"\"></city>");
}
}
areaTreeStr.append("</province>");
}
}
areaTreeStr.append("</country>");
}
return areaTreeStr.append("</>").toString();
}else{
return "";
}
}
界面展现
点击菜单 会链接到指定 urls