您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Hibernate如何讀取Clob的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Hibernate雖然對多種數據庫進行了適應,以達到前臺感受不到后臺的數據庫類型 ,但是在 Blob 和 Clob 這兩種類型的存取方面不同的數據庫有不同的實現方法,這方面Hibernate就實在沒辦法了,在 mssql 中還好實現起來比較簡單,但是我現在要說的是 超級麻煩的Oracle ,我做的項目采用的數據庫就是Oracle ,不容質疑Oracle的確是***的數據庫,但是有些地方太復雜。
使用Hibernate讀取Clob 和 Blob 是跟往常一樣的,主要是保存。
具體的流程如下:
1、先創建一個只有一個字節的 Blob
2、使用flush 方法強勢Hibernate保存這個只有一個字節的 Blob
3、通過保存獲得了一個游標
4、使用這個游標來保存真正的數據,對數據庫實施 update 操作
具體實現代碼如下:
TUser user = new TUser(); user.setImage(Hibernate.createBlob(new byte[1])); Transaction ex = session.beginTransaction(); session.save(user); //強制保存這個blob session.flush(); //通過刷新 user 來獲得blob游標 session.refresh(user,LockMode.UPGRADE); //寫入真正的實際內容 oracle.sql.BLOB blob = (oracle.sql.BLOB)user.getImge(); OutputStream out = blob.getBinaryOutputStream(); FileInputStream img = new FileInputStream("c:\aaa.jpg"); byte[] buf = new byte[10240]; int len; while((len = img.read(buf)) > 0) ...{ out.write(buf,0,len); } img.close(); out.close(); tx.commit();
Hibernate讀取Clob也是一樣的,只是創建的是一個空格的 String :user.setResume(Hibernate.createClob(" "));
感謝各位的閱讀!關于“Hibernate如何讀取Clob”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。