Posted on 2007-04-16 15:36
七郎歸來 閱讀(655)
評論(2) 編輯 收藏
我的環境是Oracle9i2+hibernate3
使用原配的Oracle jdbc thin 驅動不能直接對clob對象進行直接操作。
google了無數文章,仿造別人的辦法,先寫入一個空的clob對象,再讀出,再寫入真正的clob對象。不行,在BLOB blob =(BLOB) myObject.getClob 這里的類型強制轉化就會出現問題。
使用hibernate官方論壇里面的重寫一個數據類型的方式,則是出現String長度的錯誤。還試了很多種辦法,均失敗。
據說,Oracle 9i 里的jdbc oci驅動可以解決上面的問題,但我已經沒有興趣再去折騰了。
最后到Oracle網站上面注冊了一個賬戶,下載了最新的Oracle 10g的jdbc驅動。
一切就正常了。其實就是Oracle原來的驅動的問題。
使用新的驅動,這個問題就不再是問題了。
Hibernate+Oracle+CLOB的讀寫其實只要這樣做:
1.在Oracle里設置某字段為clob類型。
2.在Hibernate的配置文件里使用網上下載的Oracle 10g最新的jdbc驅動。
3.實體類里把clob字段對應的屬性類型設置為String。
4.hibernate的映射文件*.hbm.xml里把該字段對應的類型該為text。
然后就可以在程序里把它當成String隨便用了。