树形节点的所有子节点的遍历

MYsql 数据库  字段就几个  id  pid  name  count(可有可无)

使用递归算法来查找 不多说了 上代码

/**
 * 
 */
package com.org.action;


import java.util.ArrayList;
import java.util.List;


import com.core.sql.SqlConn;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSet;
import com.org.model.PProduct;


/**
 * @author linpeng
 *
 * 2013-5-7
 */
public class TraverseSql {
List<PProduct> list1 = new ArrayList<PProduct>();
public TraverseSql(){}
public  List<PProduct> subNode(int id){
//输出当前节点
//输出
//System.out.println("father = "+id+"\n");

//取得所有子节点
//遍历子节点
List<PProduct> list=child(id);

for(PProduct p:list){
list1.add(p);
System.out.println("father-------= "+p.getId());
subNode(p.getId());
}
return list1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
    TraverseSql aa = new TraverseSql();  
    List<PProduct> list=   aa.subNode(2); 
     // List<PProduct> list = subNode(56);
         for(PProduct pro:list){
        System.out.println("father- = "+pro.getId());
         }
         }
public List child(int id){
String sql = "select * from p_product where pid='" + id
+ "'";
String url = null;
ResultSet rst = null;
Connection conn = null;
SqlConn sqlconn = new SqlConn();
       List<PProduct> list=new ArrayList<PProduct>();
       List list1 = new ArrayList();
try {
// id = "";

conn = SqlConn.getConnection();
rst = sqlconn.executeQuery(conn, sql);
while (rst.next()) {
PProduct p =new PProduct();
   p.setId(rst.getInt("id"));
  //  System.out.println("child = "+rst.getInt("id")+"\n");
   p.setCount(rst.getInt("count"));
   p.setName(rst.getString("name"));
   p.setPid(rst.getInt("pid"));
list.add(p);
list1.add(rst.getInt("id"));
}
}catch (Exception ex) {
System.out.printf("Fail");
}
return list;
}


}


使用的时候 就直接调用subNode方法就行了 因为她返回的是一个 全局的LIST  在遍历的时候 我吧遍历到的每个对象都存进去了 调用它会返回我遍历的所有的对象



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值