SOS,写一个树,要求连接数据库,怎么写呢,都弄半个月了,再搞不出来就只好辞职了

解决方案 »

  1.   

    树就用dtree就行了。数据库操作不是很麻烦吧!select而已,记得上下级的关系。
    辞职?如果你上了班,还不会树,你应该引咎辞职。
      

  2.   

    树的例子到处都是,csdn下载区就有,大部分都是javascript写的,很好理解.说白了就是把数据放入数组再连字符串再打印
      

  3.   

    什么树?Swing的还是JS的?“要求连接数据库”是啥意思,是不是指树结构保存到数据库里?说清楚一点嘛
      

  4.   


    哈哈,竹子太恨了吧,人家也要吃饭啊按照竹子说的用dtree可以了,也容易掌握如果节点太大推荐你用动态树,可以用xloadtree,也容易掌握,网上有很多例子,照着改一下就可以了
      

  5.   

    这有个例子
    http://blog.csdn.net/j2ee_fan/archive/2008/03/28/2224346.aspx
      

  6.   

    经常来CSDN看看,发发贴,记得要结帖。
      

  7.   


    class ClientTreeReader {

    private StringBuffer sbTree = new StringBuffer();

    /**
     * 取得数据
     * @return 树节点的字符串
     */
    String read() {
    Connection conn = null;
    try {
    conn = DB.getConnection();
    read(conn, 0, 0);
    }catch(SQLException e) {
    e.printStackTrace();
    }finally {
    DB.close(conn);
    }
    return sbTree.toString();
    }
    /**
     * 递归读取树
     * 
     * 第四步,采用<div>生成树
     * @param conn
     * @param id 
     * @param level 控制层次
     * @throws SQLException
     */
    private void read(Connection conn, int id, int level) 
    throws SQLException {
    level++;
    String sql = "select * from t_client where pid=?";
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
    pstmt = conn.prepareStatement(sql);
    pstmt.setInt(1, id);
    rs = pstmt.executeQuery();
    while (rs.next()) {
    sbTree.append("<div>");
    sbTree.append("\n");
    for (int i=0; i<level-1; i++) {
    sbTree.append("<img src=\"../images/white.gif\">");
    }
    if ("N".equals(rs.getString("is_leaf"))) {
    sbTree.append("<img alt=\"展开\" style=\"cursor:hand;\" onClick=\"display('" + rs.getInt("id") + "');\" id=\"img" + rs.getInt("id") + "\" src=\"../images/plus.gif\">");
    sbTree.append("\n");
    sbTree.append("<img id=\"im" + rs.getInt("id") + "\" src=\"../images/closedfold.gif\">");
    sbTree.append("\n");
    sbTree.append("<a href=\"client_node_crud.jsp?id=" + rs.getInt("id") + "\" target=\"clientDispAreaFrame\">" + rs.getString("name") + "</a>");
    sbTree.append("\n");
    sbTree.append("<div style=\"display:none;\" id=\"div" + rs.getInt("id") + "\">");
    sbTree.append("\n");
    read(conn, rs.getInt("id"), level);
    sbTree.append("</div>"); 
    }else {
    sbTree.append("<img src=\"../images/minus.gif\">");
    sbTree.append("\n");
    sbTree.append("<img src=\"../images/openfold.gif\">");
    if ("Y".equals(rs.getString("is_client"))) {
    sbTree.append("<a href=\"client_crud.jsp?id=" + rs.getInt("id") + "\" target=\"clientDispAreaFrame\">" + rs.getString("name") + "</a>");
    }else {
    sbTree.append("<a href=\"client_node_crud.jsp?id=" + rs.getInt("id") + "\" target=\"clientDispAreaFrame\">" + rs.getString("name") + "</a>");
    }
    sbTree.append("\n");
    }
    sbTree.append("</div>");
    }
    }finally {
    DB.close(rs);
    DB.close(pstmt);
    }

    }
    }

      

  8.   

    设计数据库的时候,要有一个字段是父id(pid),还要设计一个字段“is_leaf”
    每个节点不仅有自己的id,还要有父id(pid)
    当A节点的pid等于B节点的id,说明A是B的叶子
    is_leaf字段有两个值,N代表节点下面还有子节点(叶子),Y代表节点下面没有子节点closedfold.gif是文件夹关闭的图标
    openfold.gif是文件夹打开的图标
    white.gif是空白的图标
    minus.gif是减号的图标
    plus.gif是加号的图标
      

  9.   

    http://download.csdn.net/source/574520
    这个 你去下载吧..看看怎么实现的
      

  10.   

    我也在用VC++做一个三层的动态树,树的节点是从ACCESS数据中取得,请问各位高手,指点一下吧