天天看点

tree 递归 树形菜单!

StringBuffer optionStr = new StringBuffer();
	public String tree(Connection jdbc,int id,int level){ 
		
		  ResultSet rst = null;
		  Statement stmt = null;
		  String preStr = "";
		 
		  String sql = "select * from cms_channel where parent_id = " + id;
		  try{
		   stmt = jdbc.createStatement();
		   rst = stmt.executeQuery(sql);
		   while(rst.next()){
			   for(int i=0; i<level; i++) {
					  optionStr.append("----");
				  }
			    optionStr.append(""+rst.getString("channel_id")+",");
			   optionStr.append(""+rst.getString("channel_name")+"");
			//optionStr.append("d.add("+rst.getString("channel_id").trim()+","+rst.getString("parent_id").trim()+",'"+rst.getString("channel_name").trim()+"','javascript:clickMenu("+rst.getString("channel_id").trim()+","+rst.getString("parent_id").trim()+");οncοntextmenu=showMenu("+rst.getString("channel_id").trim()+","+rst.getString("parent_id").trim()+");','"+rst.getString("channel_name").trim()+"');");
			optionStr.append("\n\r");
		   // if(rst.getInt("has_child") != 1) {
		     tree(jdbc, rst.getInt("channel_id"), ++level);
		     --level;  
		   // }
		   } 
		  
		  } catch(SQLException e){
		   e.printStackTrace();
		  }  finally {
		   try {
		    if(rst != null) {
		    	rst.close();
		    	rst = null;
		    }
		    if(stmt != null){
		      stmt.close();
		      stmt = null;
		    }
		   } catch (SQLException e) {
		    e.printStackTrace();
		   }
		  }
		  return optionStr.toString();
		 }
public static void main(String[] args) {
		//getDBConnection();
		System.out.println(new TestDB().tree(TestDB.getDBConnection(),-1,0));
	}
           

运行结果

1,新闻资讯

----6,国内新闻

----7,国际新闻

4,房产资讯

5,体育世界

继续阅读