本节内容:
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();
}
}
测试类:
查询结果:
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
代码:
mysql递归查询实例解析
mysql递归查询(分页版)代码
mysql递归查询替代函数实例
mysql递归查询树形叶子
MySQL 递归查询当前节点子节点
mysql递归查询实现方法
MySQL存储过程递归调用实例