jfy3d(劍事)BLOG

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            37 隨筆 :: 0 文章 :: 363 評論 :: 0 Trackbacks

          原理就是用Map存放單條數據然后放到List里

          用起來可以這樣調用  List list = rs.selectRS(sqlStr);

          for(int i=0;i<list.size;i++)
          {
              ((Map)list.get(i)).get("username");
          }
          這樣的話就不用每次在寫數據庫連接了,而且有比較復雜的頁面格式輸出就可以通過對 i 的控制來實現了

          下面是具體實現類可以結合struts,webwork2的標簽來用,我已經測試過了沒問題
          我也看到一些人是自己寫類來代替Map來用的

          package com;

          import conn.DBConnManager;
          import java.sql.*;
          import java.util.*;

          public class ResultGather
          {
           private String sql;
           public ResultGather()
           {
            
           }
           public ResultGather(String sqlcom)
           {
            this.sql=sqlcom;
           }
           public List selectRS(String sqlStr)
           {
            this.sql = sqlStr;
            return selectRS();
           }
           public List selectRS()
           {
            List rsall = new ArrayList();
            Map rsTree;
            DBConnManager conn = null;
            Connection con = null;
            Statement stmt = null;
            ResultSet rs = null;
            try{
             conn = DBConnManager.getInstance();
             con = conn.getConnection("mssql");
             stmt = con.createStatement();
             rs = stmt.executeQuery(sql);
             ResultSetMetaData rsmd = rs.getMetaData();//取數據庫的列名  我覺得名比1,2,3..更好用
             int numberOfColumns = rsmd.getColumnCount();
             while(rs.next())
             {
             rsTree = new HashMap(numberOfColumns);//注意要new
               for(int r=1;r<numberOfColumns+1;r++)
               {
                rsTree.put(rsmd.getColumnName(r),rs.getObject(r)); 
               }
               rsall.add(rsTree);
             }
             
            }catch(java.lang.Exception ex){
             ex.printStackTrace();
            }finally{
             try{
              if(rs!=null)
               rs.close();
              if(stmt!=null)
               stmt.close();
              if(conn!=null)
               conn.releaseConnection("mssql",con);
             }catch(Exception e){
              
             }   
            }
            return rsall;
           }
          }

          簡單的東西 交流交流

          posted on 2005-05-12 00:23 劍事 閱讀(3115) 評論(9)  編輯  收藏 所屬分類: 小程序

          評論

          # re: 封裝數據結果集 2005-05-25 21:55 hcom
          取數據的時候是不是要判斷null的情況?
          否則可能報空指針的錯誤吧?  回復  更多評論
            

          # re: 封裝數據結果集 2005-05-25 22:27 劍事
          這個不用 null不會異常  回復  更多評論
            

          # re: 封裝數據結果集 2005-06-22 09:58 張輝
          # re: 封裝數據結果集 2005-05-25 21:55 hcom
          取數據的時候是不是要判斷null的情況?
          否則可能報空指針的錯誤吧?

          # re: 封裝數據結果集 2005-05-25 22:27 劍事
          這個不用 null不會異常

          調試過,發現問題。第一速度很慢,第二重新刷新或搜索時,發現
          java.lang.NullPointerException
          不知道是什么問題。
          如果知道是什么問題請發Email給我。  回復  更多評論
            

          # re: 封裝數據結果集 2005-06-22 16:09 劍事
          參看那個struts用法

          我至今沒有碰到這樣的問題  回復  更多評論
            

          # re: 封裝數據結果集 2006-01-02 01:03 撒哈拉熊
          有這個必要把這些數據存放在這樣的數據結構里面嗎?

          如果針對內存來說,相同數據量,相比起直接存取結果集,占用率是不是太大了?

          請指教:haolin.jia@gmail.com  回復  更多評論
            

          # re: 撒哈拉熊 2006-01-04 09:11 劍事
          你覺得hibernate有必要出現么

          而且直接在rs輸出站用數據庫連接的時間要大于 封裝時間  回復  更多評論
            

          # re: 封裝數據結果集 2006-03-16 08:45 xfan
          自己寫什么類哦,用spring的jdbc模板干脆
          List lst=jdbcTemplate.queryForList(list);  回復  更多評論
            

          # 回復 xfan 2006-03-16 13:29 xmlspy.spring
          xfan說的對.
          看看兄臺也是spring的fans啊 .
          spring的jdbc template 無論從性能和易用性上都是比較均衡的.
          是目前最佳的選擇 :)


          交流交流 :) --- msn heaven0@hotmal.com :0 :) :) :P) :)   回復  更多評論
            

          # re: 封裝數據結果集 2006-03-16 18:18 劍事
          @xmlspy.spring

          spring的jdbc template 看過 書上講的比較詳細

          設計這個類的那時候我還不知道有個SPRING的東西
          而且用SPRING也要看項目的規模啊
            回復  更多評論
            

          主站蜘蛛池模板: 洪洞县| 信宜市| 阳西县| 枣庄市| 梧州市| 谢通门县| 牙克石市| 长白| 观塘区| 桑植县| 广东省| 新沂市| 翼城县| 五家渠市| 本溪市| 华池县| 临清市| 昆山市| 越西县| 邯郸县| 鹤壁市| 尼勒克县| 松原市| 平舆县| 赤城县| 桐城市| 色达县| 马关县| 武乡县| 宁海县| 抚州市| 都匀市| 桓仁| 伽师县| 奎屯市| 琼中| 资中县| 玛多县| 京山县| 福鼎市| 阜城县|