`
lijun87
  • 浏览: 263586 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hibernate+Oracle+CLOB的读写问题

阅读更多
Hibernate+Oracle+CLOB的读写问题
from:
http://www.paypie.net/hibernateoracleclob%E7%9A%84%E8%AF%BB%E5%86%99%E9%97%AE%E9%A2%98.html



我的环境是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随便用了。
分享到:
评论
1 楼 lijun87 2008-10-28  
只是字符串的字节大小要限制在2000字节以内哦

相关推荐

Global site tag (gtag.js) - Google Analytics