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

递归|数据|数据库

/* * 创建日期 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="    ";   String nnn="|";   for(int q=0;q<j;q++){      nnn=nnn+"--";      mmm=mmm+"    ";   }      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+"修改  ";      table2=table2+"注册下级菜单  ";      table2=table2+"  <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\">  <name></td>";      table1=table1+"<td width=\"30%\" height=\"30\" align='center'>";      table1=table1+"修改  ";      table1=table1+"注册下级菜单  ";      table1=table1+"  <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>",""));         }         else{         out.print(table1.replaceAll("<name>",(String)aa.arrayname.get(i)).replaceAll("<del>","删除"));          }         aa.buildTree(out,(String)aa.class1_id.get(i),0);        }    }}

数据库连接和数据库操作类:

/* * 创建日期 2005-4-14 * * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */package dbmanager;import java.sql.*;/** * @author Administrator * * TODO 要更改此生成的类型注释的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */public class DBConnection { String user="sa"; String password="sa"; String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; String sConnStr="jdbc:microsoft:sqlserver://172.16.204.10:1433;DatabaseName=HLSP_MIS"; Connection connect=null; ResultSet rs=null; Statement stmt = null, stmt1 = null; public DBConnection(){  try{   Class.forName(sDBDriver);   connect = DriverManager.getConnection(sConnStr,user,password);   stmt = connect.createStatement();   stmt1=connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

  }  catch(Exception e){      System.err.println(e.getMessage());  } } //执行数据库查询 public ResultSet runRs(String sql){ rs=null; try{ rs=stmt1.executeQuery(sql); } catch(SQLException ex){ System.err.println(ex.getMessage()); } return rs; } //执行数据库其他操作 public  boolean  executeSql(String sql) { boolean che=false; try { stmt.executeUpdate(sql); che=true; } catch (SQLException ex) { System.err.println(ex.getMessage()); che=false; } return che; } //进行数据库连接释放 public boolean free(){ try {  connect.close();  if (stmt!=null){   stmt.close();      }  if(stmt1!=null){       stmt1.close();      }  return true;  }  catch (Exception e) {  return false;  }

 }}

时间: 2024-10-26 00:00:33

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

树形目录的递归实现数据库+jsp+javabean

js|递归|数据|数据库 树形目录的递归实现(一)数据库+jsp+javabean <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><!--数据库结构:库名:test表名:treeCREATE TABLE [dbo].[tree] ( [id] [int] I

好不容易帮同事写的一个awk,要记下来

给昌哥写的过滤的东东. 是实现了,但感觉丑,不规范. 记得下先. 原始数据格式: 2016-07-22 09:50:40 [ pool-2-thread-1:232231791 ] - [ DEBUG ] origin match time:09:50:21, user:180783710, orderId:ZAZWXNLN, orderQty:1100, matchedQty:400 2016-07-22 09:50:40 [ pool-2-thread-1:232231791 ] - [ D

写了一个排查文件是否在数据库存在的程序但是运行很慢

问题描述 在一个文件夹中遍历所有文件名,判断是否存在于数据库如果存在就移动到truefilepath文件夹没有存在移动到false文件夹但是运行时间很长姚156秒才能运行完.求大神帮助,史什么地方的操作导致的程序运行缓慢'/判断是否受信PrivateFunctionExecuteTableshoukai(ByValfolderspec)AsBooleanDimvlSqlAsStringDimvlDataTableAsDataTableDimvlCheck1AsString=String.Empt

一个利用PHP语言读取数据库数据的例子

在学习<十天学会PHP>的过程中,当看到关于数据库连接的问题时,由于知识的不足,遇到了困难.于是找朋友帮忙写了个PHP小程序,在这里贴出来,希望对大家能有帮助.注释是我自己写的. 这段代码的功能是: 连接到一个 url 地址为localhost . 端口为 3306 的mysql服务器上.mysql服务器的帐号是"root",密码是"9999".mysql 服务器上有一个数据库 ok , 数据库里有一个表 abc.表 abc 一共为两列,列名分别是 &q

java 递归 输入一个ID 怎么把这个ID下所有的子ID 放入一个list里面 递归都写好了

问题描述 java 递归 输入一个ID 怎么把这个ID下所有的子ID 放入一个list里面 递归都写好了 HashMap> results = new HashMap>(); //输入的ID int ID=Integer.parseInt(Catid); //表中所有的数据 aas=cloudnewscategory.selectAllGory(); System.out.println("所有记录="+aas); for (CloudNewsCategory gory :

我写的一个遍历目录以及目录下文件的函数,看看能不能放到精华区呀?

遍历|遍历目录|函数|精华 <%@ Language=VBScript %><%  '我写的一个遍历目录以及目录下文件的函数,%><%    function bianli(path)        set fso=server.CreateObject("scripting.filesystemobject")             on error resume next        set objFolder=fso.GetFolder(path

android-Android 自己写的一个全局事件管理器,感觉还有点儿问题,提上代码,希望大神们修改修改!!!

问题描述 Android 自己写的一个全局事件管理器,感觉还有点儿问题,提上代码,希望大神们修改修改!!! import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import android.os

一步一步写算法(之非递归排序)

原文:一步一步写算法(之非递归排序) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com]        在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大.作为一个100万的数据,如果使用普通的查找方法,那么每一个数据查找平均下来就要几十万次,那么二分法的查找呢,20多次就可以搞定.这中间的差别是非常明显的.既然排序有这么好的效果,那么这篇博客中,我们就对排序算做一个总结.     按照我个人的理解,排序可以分为两种:一种是非递归排

spring mvc-我用springMVC写了一个web项目,加载到tomcat8上后启动出现此异常,请懂得的来帮忙看下

问题描述 我用springMVC写了一个web项目,加载到tomcat8上后启动出现此异常,请懂得的来帮忙看下 异常信息如下: 严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spring_mvc]] at or