posts - 3,  comments - 2,  trackbacks - 0

          近期 需要操作hibernate把圖片往sql 2005里添加,先搜集下資料。
          以下載自http://blog.csdn.net/haofeng82/archive/2007/06/30/1672299.aspx   在此感謝

          這里是以sqlserver為例子的 ,oracle的特殊性暫不考慮。

          我感覺大字段的保存應該有如下幾步:

          1 首先你必須得到一個代表上傳文件的數據流;

          2 需要一張表存儲大字段數據:包括內容,類型(mimetype),這就要看你讀取時如何操作文件了:

           如果你想緩存到硬盤上的話可能需要一個文件路徑字段,等等。

          3 進行保存操作

          假設你已經能夠獲得文件流對象了應該是一個inputstream,我們可以編寫下面的代碼保存數據到數據庫:

                 tran = session.beginTransaction();
               
                 TblEAccessory test=new TblEAccessory();
              test.setId("testId");
              test.setFileCacheName(ufile.getBaseFileName());
            test.setFileExt(ufile.getExt());

          //這里沒有設置mimetype,應該設置的

              Blob b = Hibernate.createBlob(ufile.fileItem.getInputStream());
              test.setFileContent(b);
              session.save(test);
              tran.commit();

           

          這里的ufile對象是封裝了fileupload的fileItem的一個類的實例,主要是存儲了上傳文件的流。最關鍵的是

          ufile.fileItem.getInputStream(),得到了文件的流對象,怎么得到并不是這里需要討論的問題。

          然后我們創建了一個hibernate 大字段,將值設置上就行了。

           

          --為什么沒使用oracle作例子,因為好風最近做的項目老是使用sqlserver;再加上聽說oracle的最新驅動已經解決了hibernate大字段的特殊操作,還沒試過,看看。

          --使用hibernate進行大字段操作還可以通過自定義類型實現,公司里用的就是這個,不過我懶,還是喜歡這種方法

          posted on 2007-07-31 00:34 Mr. Michael.Q 閱讀(1047) 評論(0)  編輯  收藏 所屬分類: 站在他人的肩膀上
          主站蜘蛛池模板: 昌吉市| 滦平县| 大关县| 南陵县| 福鼎市| 汉阴县| 贵阳市| 芮城县| 民乐县| 寿宁县| 紫云| 定远县| 额济纳旗| 大关县| 葫芦岛市| 宜黄县| 县级市| 保山市| 乐东| 邻水| 永善县| 资溪县| 西林县| 阜宁县| 泰顺县| 北碚区| 华蓥市| 台南县| 奈曼旗| 老河口市| 贡觉县| 达拉特旗| 来凤县| 正安县| 信阳市| 宁远县| 石城县| 新巴尔虎右旗| 大足县| 贵港市| 淮安市|