<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    悟心

    成功不是將來才有的,而是從決定去做的那一刻起,持續(xù)累積而成。 上人生的旅途罷。前途很遠(yuǎn),也很暗。然而不要怕。不怕的人的面前才有路。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      93 隨筆 :: 1 文章 :: 103 評(píng)論 :: 0 Trackbacks

     

    BaseDao

     package com.common;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class Common implements ICommon {

     //driver
     String classStr="oracle.jdbc.driver.OracleDriver";
     //connection
     String connStr="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
     //username
     String name="lw";
     //password
     String password="admin";
     

     //transact add/delete/update method
     public boolean tsg(String sql){
      boolean b=false;
      try {
       //loading driver
       Class.forName(classStr);
       //create connection
       Connection conn=DriverManager.getConnection(connStr,name,password);
       //create transact SQL object
       Statement sta=conn.createStatement();
       //transact SQL
       sta.executeUpdate(sql);
       //close sta
       sta.close();
       //close conn
       conn.close();
       //set b true
       b=true;
      } catch (SQLException e) {
       e.printStackTrace();
      } catch (ClassNotFoundException e) {
       e.printStackTrace();
      }
      return b;
     }
     
     //transact select
     public ResultSet select(String sql){
      try {
       Class.forName(classStr);
       
       Connection conn=DriverManager.getConnection(connStr,name,password);
       
       Statement sta=conn.createStatement();
       
       ResultSet rs=sta.executeQuery(sql);
       
       return rs;
      } catch (Exception e) {
       // TODO: handle exception
      }
      return null;
     }
     
    }


    DemoDaoImpl

    package com.demo.dao;

    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

    import com.demo.bean.Dept;
    import com.demo.common.BaseDaoImpl;
    import com.demo.common.IBaseDao;

    public class DemoDaoImpl implements IDemoDao {

     private IBaseDao baseDao = new BaseDaoImpl();

     public Dept queryDemoById(int id) {

      String sql = "select * from dept where did=" + id;

      ResultSet rs = baseDao.query(sql);

      Dept dept = new Dept();

      try {
       while (rs.next()) {
        dept.setDid(rs.getInt(1));
        dept.setDname(rs.getString(2));
        dept.setParentid(rs.getInt(3));
       }
      } catch (SQLException e) {
       e.printStackTrace();
      }

      return dept;
     }

     public List<Dept> queryDemos(int id) {

      String sql = "select * from dept where parentid=" + id;

      ResultSet rs = baseDao.query(sql);

      List<Dept> list = new ArrayList<Dept>();

      try {
       while (rs.next()) {
        Dept dept = new Dept();
        dept.setDid(rs.getInt(1));
        dept.setDname(rs.getString(2));
        dept.setParentid(rs.getInt(3));
        list.add(dept);
       }
      } catch (SQLException e) {
       e.printStackTrace();
      }

      return list;
     }

     public static void main(String[] args) {
      IDemoDao dao = new DemoDaoImpl();
      Dept d = dao.queryDemoById(1);
      System.out.println(d);
     }
    }

    DemoServImpl

    package com.demo.serv;

    import java.util.List;

    import com.demo.bean.Dept;
    import com.demo.dao.DemoDaoImpl;
    import com.demo.dao.IDemoDao;

    public class DemoServImpl implements IDemoServ {

     private IDemoDao demoDao = new DemoDaoImpl();

     private static String htmlStr="";
     
     private void search(int id) {
      List<Dept> list = demoDao.queryDemos(id);
      htmlStr+="<ul>";
      for (Dept dept : list) {
       htmlStr+="<li>";
       htmlStr+="<a href='"+dept.getDid()+"'>"+dept.getDname()+"</a>";
       htmlStr+="</li>";
       search(dept.getDid());
      }
      htmlStr+="</ul>";
     }
     
     public String resHTML(int id){
      htmlStr="";
      search(id);
      return htmlStr;
     }
    }

    DemoServlet

     

    package com.demo.servlet;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.demo.serv.DemoServImpl;
    import com.demo.serv.IDemoServ;

    public class DemoServlet extends HttpServlet {

     private IDemoServ demoserv = new DemoServImpl();

     public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
      doPost(request, response);
     }

     public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
      request.setCharacterEncoding("utf-8");
      request.setCharacterEncoding("utf-8");
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      int id = Integer.parseInt(request.getParameter("id"));
      String reshtml = demoserv.resHTML(id);
      out.write(reshtml);
      out.flush();
      out.close();
     }

    }

    posted on 2009-11-15 00:06 艾波 閱讀(2288) 評(píng)論(10)  編輯  收藏 所屬分類: Application

    評(píng)論

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean] 2009-11-16 09:59 father
    什嗎玩意!!!!!  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn)) 2009-11-18 13:11 艾波
    你是高手嘛,當(dāng)然不屑啊@father
      回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn))[未登錄] 2009-11-18 16:37 onkyo
    這樣遞歸錯(cuò)是沒錯(cuò),但是太過理想化了, 在實(shí)際應(yīng)用中基本很少能用上這樣的代碼。

    設(shè)想一下比如一張表保存了所有工料信息(article-component) 里面有100萬條數(shù)據(jù)記錄。 如果使用樓主的算法耗時(shí)過長而且很可能out of memory。

    其實(shí)就用一句SQL就可以了,不需要在程序里面遞歸。
    既然樓主用了Oracle那就了解一下start with connect by 的用法吧  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn)) 2009-11-18 20:48 艾波
    @onkyo
    嗯 學(xué)習(xí)了 多謝指教啊!我有個(gè)問題想問你,要是不在oracle中,在sql2005或者mysql中怎么弄啊  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn))[未登錄] 2009-11-18 22:41 onkyo
    在postgresql 數(shù)據(jù)庫的源代碼contrib文件夾下面, 有一個(gè)模塊:tablefunc

    postgresql 把 connectby 做成了一個(gè)函數(shù)。

    對(duì)于sql2005和mysql你可以參考一下, 自己寫一個(gè)函數(shù)。

    在數(shù)據(jù)庫里面做遞歸比在程序里面至少快2個(gè)數(shù)量級(jí)  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn)) 2009-11-18 23:13 艾波
    @onkyo
    嗯 謝謝啊 是不是在數(shù)據(jù)庫里面寫個(gè)存儲(chǔ)過程來處理這個(gè)啊  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn))[未登錄] 2009-11-19 14:07 onkyo
    是的.

    如何寫這個(gè)儲(chǔ)存過程:
    MySQL 可以參考 http://qieqie.javaeye.com/blog/115293
    SQL2005 可以參考 http://technet.microsoft.com/de-de/library/cc917573%28en-us%29.aspx  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn)) 2009-11-21 08:46 艾波
    @onkyo
    嗯 多謝指教 太感謝你了 我可不可以加你QQ啊 我想多向你請(qǐng)教些技術(shù)上面的問題  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn)) 2010-01-15 21:25 來如風(fēng)
    不要一次全加載,用懶加載  回復(fù)  更多評(píng)論
      

    # re: 遞歸樹(新思路)[JDBC+Servlet+javaBean](新手版高手勿進(jìn)) 2010-01-18 16:36 艾波
    嗯 謝謝指教@來如風(fēng)
      回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 久久99国产乱子伦精品免费| 一级人做人爰a全过程免费视频| 国产亚洲玖玖玖在线观看| 亚洲AV永久无码精品网站在线观看 | 最近最新中文字幕完整版免费高清 | igao激情在线视频免费| 美女在线视频观看影院免费天天看| 最近2019年免费中文字幕高清| 毛片免费在线视频| 亚洲精品A在线观看| 久久久久亚洲Av片无码v| 亚洲综合久久一本伊伊区| 在线播放亚洲精品| 免费无码又爽又刺激高潮软件 | 8x成人永久免费视频| 毛片免费观看的视频| 国产亚洲精品无码专区| 亚洲欧洲自拍拍偷综合| 精品一区二区三区免费毛片| 免费a级毛片无码a∨免费软件| 免费99精品国产自在现线| 亚洲精品国自产拍在线观看| 亚洲高清美女一区二区三区| 久久精品国产亚洲AV未满十八| 久久精品成人免费网站| 毛片免费在线视频| 亚洲成AV人片在WWW色猫咪| 色天使亚洲综合在线观看| 中文无码日韩欧免费视频| 中国在线观看免费高清完整版| 亚洲五月午夜免费在线视频| 亚洲婷婷综合色高清在线| 一级特级aaaa毛片免费观看 | 水蜜桃视频在线观看免费播放高清 | 99在线热视频只有精品免费| 在线免费观看一级片| 久久精品国产亚洲香蕉| 亚洲av无码偷拍在线观看| 毛片无码免费无码播放| 内射无码专区久久亚洲| 亚洲一区二区三区久久|