熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

hibernate 經驗談2

2013-11-23 20:03:13  來源: Java開源技術 

  hibernate雖然對多種數據庫進行了適應以達到前台感受不到後台的數據庫類型 但是在 Blob 和 Clob 這兩種類型的存取方面不同的數據庫有不同的實現方法這方面 hibernate   就實在沒辦法了在 mssql 中還好實現起來比較簡單但是我現在要說的是 超級麻煩的  Oracle 我做的項目采用的數據庫就是  Oracle 不容質疑Oracle的確是最好的數據庫但是有些地方太復雜

  使用 hibernate 讀取 Clob 和 Blob 是跟往常一樣的主要是保存

  具體的流程如下

  先創建一個只有一個字節的 Blob

  使用  flush 方法強勢 hibernate 保存這個只有一個字節的 Blob

  通過保存獲得了一個游標

  使用這個游標來保存真正的數據對數據庫實施 update 操作

  具體實現代碼如下

    TUser user = new TUser();
usersetImage(HibernatecreateBlob(new byte[]));

  Transaction ex = sessionbeginTransaction();
 sessionsave(user);
//強制保存這個blob
sessionflush();
//通過刷新 user 來獲得blob游標
sessionrefresh(userLockModeUPGRADE);

  //寫入真正的實際內容
oraclesqlBLOB blob = (oraclesqlBLOB)usergetImge();
OutputStream out = blobgetBinaryOutputStream();

  FileInputStream img = new FileInputStream(c:\aaajpg);
byte[] buf = new byte[];
int len;
while((len = imgread(buf)) > )
{
    outwrite(buflen);
}
imgclose();
outclose();

  mit();


    Clob 也是一樣的只是創建的是一個空格的 String usersetResume(HibernatecreateClob( ))


From:http://tw.wingwit.com/Article/program/Java/ky/201311/27871.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.