jfy3d(劍事)BLOG

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            37 隨筆 :: 0 文章 :: 363 評(píng)論 :: 0 Trackbacks

          原理就是用Map存放單條數(shù)據(jù)然后放到List里

          用起來(lái)可以這樣調(diào)用  List list = rs.selectRS(sqlStr);

          for(int i=0;i<list.size;i++)
          {
              ((Map)list.get(i)).get("username");
          }
          這樣的話就不用每次在寫(xiě)數(shù)據(jù)庫(kù)連接了,而且有比較復(fù)雜的頁(yè)面格式輸出就可以通過(guò)對(duì) i 的控制來(lái)實(shí)現(xiàn)了

          下面是具體實(shí)現(xiàn)類(lèi)可以結(jié)合struts,webwork2的標(biāo)簽來(lái)用,我已經(jīng)測(cè)試過(guò)了沒(méi)問(wèn)題
          我也看到一些人是自己寫(xiě)類(lèi)來(lái)代替Map來(lái)用的

          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();//取數(shù)據(jù)庫(kù)的列名  我覺(jué)得名比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;
           }
          }

          簡(jiǎn)單的東西 交流交流

          posted on 2005-05-12 00:23 劍事 閱讀(3116) 評(píng)論(9)  編輯  收藏 所屬分類(lèi): 小程序

          評(píng)論

          # re: 封裝數(shù)據(jù)結(jié)果集 2005-05-25 21:55 hcom
          取數(shù)據(jù)的時(shí)候是不是要判斷null的情況?
          否則可能報(bào)空指針的錯(cuò)誤吧?  回復(fù)  更多評(píng)論
            

          # re: 封裝數(shù)據(jù)結(jié)果集 2005-05-25 22:27 劍事
          這個(gè)不用 null不會(huì)異常  回復(fù)  更多評(píng)論
            

          # re: 封裝數(shù)據(jù)結(jié)果集 2005-06-22 09:58 張輝
          # re: 封裝數(shù)據(jù)結(jié)果集 2005-05-25 21:55 hcom
          取數(shù)據(jù)的時(shí)候是不是要判斷null的情況?
          否則可能報(bào)空指針的錯(cuò)誤吧?

          # re: 封裝數(shù)據(jù)結(jié)果集 2005-05-25 22:27 劍事
          這個(gè)不用 null不會(huì)異常

          調(diào)試過(guò),發(fā)現(xiàn)問(wèn)題。第一速度很慢,第二重新刷新或搜索時(shí),發(fā)現(xiàn)
          java.lang.NullPointerException
          不知道是什么問(wèn)題。
          如果知道是什么問(wèn)題請(qǐng)發(fā)Email給我。  回復(fù)  更多評(píng)論
            

          # re: 封裝數(shù)據(jù)結(jié)果集 2005-06-22 16:09 劍事
          參看那個(gè)struts用法

          我至今沒(méi)有碰到這樣的問(wèn)題  回復(fù)  更多評(píng)論
            

          # re: 封裝數(shù)據(jù)結(jié)果集 2006-01-02 01:03 撒哈拉熊
          有這個(gè)必要把這些數(shù)據(jù)存放在這樣的數(shù)據(jù)結(jié)構(gòu)里面嗎?

          如果針對(duì)內(nèi)存來(lái)說(shuō),相同數(shù)據(jù)量,相比起直接存取結(jié)果集,占用率是不是太大了?

          請(qǐng)指教:haolin.jia@gmail.com  回復(fù)  更多評(píng)論
            

          # re: 撒哈拉熊 2006-01-04 09:11 劍事
          你覺(jué)得hibernate有必要出現(xiàn)么

          而且直接在rs輸出站用數(shù)據(jù)庫(kù)連接的時(shí)間要大于 封裝時(shí)間  回復(fù)  更多評(píng)論
            

          # re: 封裝數(shù)據(jù)結(jié)果集 2006-03-16 08:45 xfan
          自己寫(xiě)什么類(lèi)哦,用spring的jdbc模板干脆
          List lst=jdbcTemplate.queryForList(list);  回復(fù)  更多評(píng)論
            

          # 回復(fù) xfan 2006-03-16 13:29 xmlspy.spring
          xfan說(shuō)的對(duì).
          看看兄臺(tái)也是spring的fans啊 .
          spring的jdbc template 無(wú)論從性能和易用性上都是比較均衡的.
          是目前最佳的選擇 :)


          交流交流 :) --- msn heaven0@hotmal.com :0 :) :) :P) :)   回復(fù)  更多評(píng)論
            

          # re: 封裝數(shù)據(jù)結(jié)果集 2006-03-16 18:18 劍事
          @xmlspy.spring

          spring的jdbc template 看過(guò) 書(shū)上講的比較詳細(xì)

          設(shè)計(jì)這個(gè)類(lèi)的那時(shí)候我還不知道有個(gè)SPRING的東西
          而且用SPRING也要看項(xiàng)目的規(guī)模啊
            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 馆陶县| 丘北县| 工布江达县| 建德市| 交城县| 宝兴县| 武安市| 商丘市| 富民县| 信阳市| 德安县| 余姚市| 本溪| 察雅县| 富民县| 黑山县| 松桃| 汝州市| 金坛市| 九寨沟县| 灵宝市| 桦南县| 西安市| 安吉县| 华宁县| 麦盖提县| 临清市| 礼泉县| 靖宇县| 鄢陵县| 广昌县| 临武县| 图木舒克市| 神农架林区| 云龙县| 剑川县| 罗山县| 南京市| 姜堰市| 鞍山市| 棋牌|