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

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

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

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0


    我在處理結果集的時候,做了一個處理,把記錄都處理成了Map的對象,而把結果集處理成了一個List對象。
    如下:
    public List<Map<String, Object>> toList() throws SQLException {

                List<Map<String,Object>> recordsList = new ArrayList<Map<String, Object>>();
           
                ResultSetMetaData meta = rst.getMetaData();
                int colCnt = meta.getColumnCount();
               
                while(rst.next()){
                   
                    Map<String,Object> record = new HashMap<String, Object>();
                   
                    for(int i=0;i<colCnt;i++){
                        String colName = meta.getColumnName(i+1);
                        Object colValue = rst.getObject(colName);
                        log.debug(colValue);
                        if(colValue instanceof Blob){
                            log.debug("blob type");
                        }else{
                            record.put(colName, colValue);
                        }
                       
                    }
                   
                    recordsList.add(record);
                }      
                  
                return recordsList;
            }

    之后,就關閉了resultset ,statement ,connection。然而在我從map對象里面取得blob對象時,總是報SQLException異常。經過調試,發現在blob.getBinaryStream()時發生異常。

    無奈之下做了一個試驗。

    PreparedStatement stmt = null;
    //        ResultSet rst = null;
    //
    //        try {
    //            stmt = this.con
    //                    .prepareStatement("SELECT * FROM CCX_INFO_ARTICAL WHERE ARTICAL_ID=?");
    //            stmt.setLong(1, articalId);
    //
    //            rst = stmt.executeQuery();
    //            if(rst.next()){
    //                Blob b = rst.getBlob("ARTICAL_CONTENT");
    //                log.debug(b);
    ////                InputStream in = b.getBinaryStream();
    //               
    //               
    //               
    //               
    //                log.debug(in);
    //               
    //            }
    //
    //        } catch (SQLException e) {
    //            throw e;
    //        } finally {
    //            rst.close();
    //            if (stmt != null) {
    //                stmt.close();
    //            }
    //            if (this.con != null && this.con.getAutoCommit()) {
    //                this.con.close();
    //            }
    //        }
    //

    此段代碼可以順利的無異常的執行。由此我推測認為,主要是因為 resultset ,connection關閉引起的。這說明,在執行了查詢操作之后,
    我們雖然可以得到一個blob對象,但是實際的內容并沒有讀如內存,也就是說,并沒有讀如到blob對象中,而此blob對象也就相當于一個對數據庫中blob字段操作的一個引用,所以,此時,如果想從blob字段中讀取數據,還是需要數據庫連接的。

    而上面的封裝操作之后,數據庫連接已經中斷,所以,再讀取數據時,就發生了異常。


    下面是Blob接口的說明,也許能給我們更好的解釋.


    public interface Blob

    SQL BLOB 值在 JavaTM 編程語言中的表示形式(映射關系)。SQL BLOB 是內置類型,它將 Binary Large Object 存儲為數據庫表的某一行中的一個列值。默認情況下,驅動程序使用 SQL locator(BLOB) 實現 Blob,這意味著 Blob 對象包含一個指向 SQL BLOB 數據而不是數據本身的邏輯指針。Blob 對象在它被創建的事務處理期間有效。

    接口 ResultSetCallableStatementPreparedStatement 中的方法(如 getBlobsetBlob)允許編程人員訪問 SQL BLOB 值。Blob 接口提供某些方法來獲得 SQL BLOB (Binary Large Object) 值的長度、在客戶端實現 BLOB 值以及確定 BLOB 值中某一字節樣本的位置。此外,此接口還擁有更新 BLOB 值的方法。






    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://m.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2010-02-04 10:30 zhyiwww 閱讀(2555) 評論(0)  編輯  收藏 所屬分類: j2eeoracle
    主站蜘蛛池模板: 成人爽A毛片免费看| 午夜网站免费版在线观看| 亚洲香蕉久久一区二区三区四区| 免费理论片51人人看电影| 五月天婷婷精品免费视频| 亚洲嫩模在线观看| 免费无码又爽又高潮视频| 抽搐一进一出gif免费视频| 亚洲精品成人久久| 亚洲高清国产拍精品青青草原| 免费国产成人α片| 亚洲AV无码资源在线观看| 好看的电影网站亚洲一区| 四虎成人免费大片在线| 在线免费观看h片| 亚洲av无码专区青青草原| 无码久久精品国产亚洲Av影片| 天天拍拍天天爽免费视频 | a色毛片免费视频| 自拍偷区亚洲国内自拍| 国产亚洲一区二区在线观看| 妞干网手机免费视频| 少妇性饥渴无码A区免费| jzzijzzij在线观看亚洲熟妇| 久久久无码精品亚洲日韩按摩 | 四虎成人免费大片在线| 午夜无码A级毛片免费视频| 国产成人综合亚洲绿色| 91嫩草亚洲精品| 亚洲欧洲美洲无码精品VA | 亚洲精品无码国产| 日本成人免费在线| 国内精自视频品线六区免费| a级毛片免费全部播放| 亚洲日韩在线中文字幕综合 | 久久久久久久亚洲Av无码| 亚洲成a人片在线观看久| 成年在线观看免费人视频草莓| 色猫咪免费人成网站在线观看| 一级毛片完整版免费播放一区| 国产亚洲一卡2卡3卡4卡新区 |