打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Mysql下的递归查询树型结构

表结构为:
 分类Id  SortId
 所属分类Id ParentID
 分类名称 SortName
 分类描述 SortDesc
测试数据:
 1000 0  A类  A类
 1001 1000 A类_1 A类_1
 1002 1000 A类_1 A类_1
 1003 1001 A类_1_1 A类_1_1
 2000 0  B类  B类
 2001 2000 B类_1 B类_1
 2002 2001 B类_1_1 B类_1_1
 2003 1002 A类_1_1 A类_1_1
 2004 2003 A类_1_1_1 A类_1_1_1
 

java代码:

 (SortBean类略)

 /**
  * 查询分类的树型结构
  */
 public void getSortList(List<SortBean> sortList, Long parentId,int level){  

  SortBean bean = null;  
  List<SortBean> list = new ArrayList<SortBean>();  
  String sql = "Select * from sort_ s where s.parentId = ?";
  try{  
   System.out.println("sql:"+sql);    
   list = (List<SortBean>)jdbcDao.queryBeanList(sql, SortBean.class, parentId);//每次查询出上级为的分类
   System.out.println(list.size());
   if(list != null && list.size() > 0){  
    for(int i=0;i<list.size();i++){  
     bean = (SortBean)list.get(i); 
     bean.setLevel(level+1);   //添加等级字段
     sortList.add(bean);  
     getSortList(sortList,bean.getSortId(),level+1);   //递归查询
    }  
   }else{  
    level--;
   }
  }catch(Exception e){  
   e.printStackTrace();  
  }  
 }  
 
 
测试类:
 
 
 public void test_getSortList() {
  
  SortService service = (SortService)beanFactory.getBean("sortService");
  List<SortBean> sortList = new ArrayList<SortBean>();
  service.getSortList(sortList, 0L, 0); //起始根节点id为0,等级为0
  for(SortBean bean: sortList){
   String str = "";
   for(int i=0;i<bean.getLevel();i++){
    str +="——";
   }
   System.out.println(str+bean.getSortId() + " " + bean.getParentId() + " " + bean.getSortName());
  }
 }
 
查询结果:

1000 0 A类
 |——1001 1000 A类_1
    |——1003 1001 A类_1_1
 |——1002 1000 A类_1
 |——2003 1002 A类_1_1
    |——2004 2003 A类_1_1_1
2000 0 B类
 |——2001 2000 B类_1
 |——2002 2001 B类_1_1

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL2008使用表达式递归查询
Sql递归查询数据(类似数结构)
树形目录的递归实现数据库+jsp+javabean
别再写一堆的 for 循环了!Java 8 中的 Stream 轻松遍历树形结构,是真的牛逼
Oracle版 WITH语句的使用
SQL集合运算参考及案例(二):树形节点数量逐级累计汇总
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服