posts - 6,  comments - 4,  trackbacks - 0

          數(shù)據(jù)庫例子
          ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
          create database bbs;

          use bbs;

          create table article
          (
          id int primary key auto_increment,
          pid int,
          rootid int,
          title varchar(255),
          cont text,
          pdate datetime,
          isleaf int
          );

          insert into article values (null, 0, 1, '螞蟻大戰(zhàn)大象', '螞蟻大戰(zhàn)大象', now(), 1);
          insert into article values (null, 1, 1, '大象被打趴下了', '大象被打趴下了',now(), 1);
          insert into article values (null, 2, 1, '螞蟻也不好過','螞蟻也不好過', now(), 0);
          insert into article values (null, 2, 1, '瞎說', '瞎說', now(), 1);
          insert into article values (null, 4, 1, '沒有瞎說', '沒有瞎說', now(), 0);
          insert into article values (null, 1, 1, '怎么可能', '怎么可能', now(), 1);
          insert into article values (null, 6, 1, '怎么沒有可能', '怎么沒有可能', now(), 0);
          insert into article values (null, 6, 1, '可能性是很大的', '可能性是很大的', now(), 0);
          insert into article values (null, 2, 1, '大象進(jìn)醫(yī)院了', '大象進(jìn)醫(yī)院了', now(), 1);
          insert into article values (null, 9, 1, '護(hù)士是螞蟻', '護(hù)士是螞蟻', now(), 0);

          ------------------------------------------------------------------------------------------------------------------------------




          下面是用遞歸列出樹狀結(jié)構(gòu):

          import java.sql.*;



          public class ArticleTree {
              

              
          public static void main(String[] args) {
                  ArticleTree at 
          = new ArticleTree();
                  at.show();
              }

              
              
          public void show(){
                  Connection conn 
          = null;
                  Statement stmt 
          = null;
                  ResultSet rs 
          = null;
                  
          try{
                      Class.forName(
          "com.mysql.jdbc.Driver");
                      conn 
          = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=********");
                      stmt 
          = conn.createStatement();
                      rs 
          = stmt.executeQuery("select * from article where pid = 0");
                      
          while (rs.next()){
                          System.out.println(rs.getString(
          "cont"));
                          tree(conn, rs.getInt(
          "id"),1);
                      }

                  }
          catch(SQLException e){
                      e.printStackTrace();
                  }
          catch(ClassNotFoundException e){
                      e.printStackTrace();
                  }
          finally{
                      
          try{
                          
          if (rs!=null){
                              rs.close();
                              rs 
          = null;
                          }

                          
          if (stmt!=null){
                              stmt.close();
                              stmt 
          = null;
                          }

                          
          if (conn!=null){
                              conn.close();
                              conn 
          = null;
                          }

                      }
          catch(SQLException e){
                          e.printStackTrace();
                      }

                  }

              }

              
              
          private void tree(Connection conn,int id, int level){
                  Statement stmt 
          = null;
                  ResultSet rs 
          = null;
                  StringBuffer strPre 
          = new StringBuffer("");
                  
          for(int i = 0; i < level ; i++){
                      strPre.append(
          "    ");
                  }

                  
          try{
                      stmt 
          = conn.createStatement();
                      String sql 
          = "select * from article where pid =" + id;
                      rs 
          = stmt.executeQuery(sql);
                      
          while(rs.next()){
                          System.out.println(strPre 
          + rs.getString("cont"));
                          
          if(rs.getInt("isleaf")!=0){
                              tree(conn , rs.getInt(
          "id") , level+1);
                              
                          }

                      }

                      
                  }
          catch(SQLException e){
                      e.printStackTrace();
                  }
          finally{
                      
          try{
                          
          if (rs!=null){
                              rs.close();
                              rs 
          = null;
                          }

                          
          if (stmt!=null){
                              stmt.close();
                              stmt 
          = null;
                          }

                      }
          catch(SQLException e){
                          e.printStackTrace();
                      }

                  }

              }


          }



          輸出結(jié)果:
          --------------------------------------------------------------------------
          螞蟻大戰(zhàn)大象
              大象被打趴下了
                  螞蟻也不好過
                  瞎說
                      沒有瞎說
                  大象進(jìn)醫(yī)院了
                      護(hù)士是螞蟻
              怎么可能
                  怎么沒有可能
                  可能性是很大的

          --------------------------------------------------------------------------

          復(fù)習(xí)以下遞歸,這個(gè)東西如果不熟練,自己寫起來是很麻煩的事情。腦子里老轉(zhuǎn)不過彎。
          posted on 2009-04-06 01:42 shivaree 閱讀(508) 評(píng)論(1)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 葫芦岛市| 多伦县| 娱乐| 鄂伦春自治旗| 论坛| 房产| 始兴县| 中宁县| 绩溪县| 金堂县| 全州县| 紫阳县| 工布江达县| 鄱阳县| 电白县| 株洲市| 镇远县| 安岳县| 龙里县| 济南市| 屯留县| 泾源县| 赤水市| 巨野县| 临安市| 辛集市| 阿克苏市| 思南县| 张家口市| 北流市| 北安市| 甘泉县| 乡宁县| 渝北区| 乌恰县| 司法| 穆棱市| 晋江市| 阳新县| 蓝田县| 泸水县|