<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


    我在處理結(jié)果集的時候,做了一個處理,把記錄都處理成了Map的對象,而把結(jié)果集處理成了一個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;
            }

    之后,就關(guān)閉了resultset ,statement ,connection。然而在我從map對象里面取得blob對象時,總是報SQLException異常。經(jīng)過調(diào)試,發(fā)現(xiàn)在blob.getBinaryStream()時發(fā)生異常。

    無奈之下做了一個試驗。

    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();
    //            }
    //        }
    //

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

    而上面的封裝操作之后,數(shù)據(jù)庫連接已經(jīng)中斷,所以,再讀取數(shù)據(jù)時,就發(fā)生了異常。


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


    public interface Blob

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

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






    |----------------------------------------------------------------------------------------|
                               版權(quán)聲明  版權(quán)所有 @zhyiwww
                引用請注明來源 http://m.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2010-02-04 10:30 zhyiwww 閱讀(2546) 評論(0)  編輯  收藏 所屬分類: j2eeoracle
    主站蜘蛛池模板: 精品视频在线免费观看| 亚洲av无码兔费综合| 成人A片产无码免费视频在线观看| 免费国产一级特黄久久| 国产精品亚洲一区二区三区久久 | 亚洲成A人片在线观看无码3D| 日韩成人精品日本亚洲| 亚洲 另类 无码 在线| 春意影院午夜爽爽爽免费| 久久乐国产精品亚洲综合| 怡红院免费的全部视频| 亚洲一区二区三区首页| 国产精品色拉拉免费看| 在线aⅴ亚洲中文字幕| 免费国产不卡午夜福在线| aaa毛片免费观看| 亚洲精品视频在线| 黄页免费的网站勿入免费直接进入| 99久久婷婷国产综合亚洲| 永久中文字幕免费视频网站| 免费一级全黄少妇性色生活片| 亚洲国产精品成人| 国产成人久久AV免费| 国产成人精品日本亚洲专| 国产乱色精品成人免费视频| 在线视频网址免费播放| 亚洲国产高清在线精品一区| 日韩伦理片电影在线免费观看| 丰满少妇作爱视频免费观看| 中文字幕亚洲色图| 尤物永久免费AV无码网站| 国产午夜不卡AV免费| 亚洲入口无毒网址你懂的| 亚洲第一页日韩专区| 91免费国产精品| 国产偷国产偷亚洲清高APP| 国产成人亚洲综合色影视| 在线免费观看一区二区三区| 中文字幕免费在线观看动作大片 | 成人精品国产亚洲欧洲| 亚洲av无码潮喷在线观看|