首页 > 学院 > 开发设计 > 正文

和同事写了一个下午的递归读取数据库的javabean

2019-11-18 13:51:32
字体:
来源:转载
供稿:网友

/* * 创建日期 2005-4-14 * * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - java - 代码样式 - 代码模板 */package treeMenu;import java.util.*;import java.sql.*;import dbmanager.DBConnection;import javax.servlet.jsp.JSPWriter;/** * @author 呆猴 lUCky * * TODO 要更改此生成的类型注释的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */public class Tree {    PRivate DBConnection conn;    public ArrayList arrayid;//定义包含所有id的数组    public ArrayList arrayname;//定义包含所有名称的数组    public ArrayList arrayparent;//定义包含所有父id的数组    public ArrayList class1_id;//定义包含所有一级信息id的数组    public Tree(){    try{      conn=new DBConnection();    }    catch(Exception e){      System.out.println("sorry");    }    }    /**     *      * 定义读取所有相关记录和一级信息的方法     */    public void buidTreeinit() throws SQLException{    ResultSet rs=conn.runRs("select * from sp_sys_menu_item");    String aa="";    String id="";    String name="";    String parent_id="";    int i=0;    arrayid=new ArrayList();    arrayname=new ArrayList();    arrayparent=new ArrayList();    class1_id=new ArrayList();     while(rs.next()){     id=rs.getString("id");     name=rs.getString("name");     parent_id=rs.getString("parent_id");     arrayid.add(id);//把所有id信息赋值到arrayid数组中     arrayname.add(name);//把所有name信息赋值到arrayname数组中     arrayparent.add(parent_id);//把所有parent_id信息赋值到arrayparent数组中     /**      * 把所有的一级信息赋值到数组class1_id中      */     if(parent_id.equals("0"))      {      class1_id.add(id);      }    }    conn.free();    }    /**     * 开始定义树型结构的构造     * @param parentid     * @throws SQLException     */    public void buildTree(JSPWriter out,String parentid,int j) throws Exception{        j++;   ArrayList tmplist=new ArrayList();//包含所有父id为parent_id的记录的名称数组   String mmm="&nbsp;&nbsp;&nbsp;&nbsp;";   String nnn="";   for(int q=0;q<j;q++){      nnn=nnn+"--";      mmm=mmm+"&nbsp;&nbsp;&nbsp;&nbsp;";   }      String table2="";      table2=table2+"<tr bgcolor=/"#FFFFFF/">";      table2=table2+"<td width=/"70%/" height=/"30/">"+mmm+nnn+" <name></td>";      table2=table2+"<td width=/"30%/" height=/"30/" align=/"center/">";      table2=table2+"修改&nbsp;&nbsp;";      table2=table2+"注册下级菜单&nbsp;&nbsp;";      table2=table2+"&nbsp;&nbsp;<del>";      table2=table2+"</td>";      table2=table2+"</tr>";   while(arrayparent.indexOf(parentid)!=-1)   {     String tmpname=(String)arrayname.get(arrayparent.indexOf(parentid));//获取所有父id为parent_id的记录的名称     String tmpid=(String)arrayid.get(arrayparent.indexOf(parentid));//获取该子信息的id,用于赋予下级子信息的父id     if(has_child(tmpid)){     out.print(table2.replaceAll("<name>",tmpname).replaceAll("<del>",""));     }     else{     out.print(table2.replaceAll("<name>",tmpname).replaceAll("<del>","删除"));      }     int tmp=arrayparent.indexOf(parentid);//获取参数parent_id所在位置     arrayparent.remove(tmp);//删除参数parent_id所在位置的parent_id     arrayid.remove(tmp);//删除参数parent_id所在位置的id     arrayname.remove(tmp);//删除参数parent_id所在位置name     if(has_child(tmpid))//假如该条信息有相关子信息重新执行buildTree方法       {            buildTree(out,tmpid,j);       }        }     }    /**     * 进行是否有子信息判定     * @param parentid     * @return     */    public boolean has_child(String parentid)    {     boolean bb=false;         if(arrayparent.indexOf(parentid)!=-1)     {      

      bb=true;          }     return bb;    }    /**     * 树型结构显示     * @param args     * @throws Exception     */    public void showTree(JSPWriter out) throws Exception{     Tree aa=new Tree();        aa.buidTreeinit();        String table1="";        table1=table1+"<tr bgcolor=/"#CCCCCC/">";        table1=table1+"<td width=/"70%/" height=/"30/">&nbsp;&nbsp;<name></td>";      table1=table1+"<td width=/"30%/" height=/"30/" align='center'>";      table1=table1+"修改&nbsp;&nbsp;";      table1=table1+"注册下级菜单&nbsp;&nbsp;";      table1=table1+"&nbsp;&nbsp;<del>";      table1=table1+"</td>";        table1=table1+"</tr>";        for(int i=0;i<aa.class1_id.size();i++)        {         if(aa.has_child((String)aa.class1_id.get(i))){         out.print(table1.replaceAll("<name>",(String)aa.arrayname.get(i)).replaceAll("<del>",""));&nb

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表