搬砖头

Knocking on Heaven's Door
posts - 34, comments - 6, trackbacks - 0, articles - 0

Hibernate实现Clob和Blob对象的存取

Posted on 2007-11-02 16:17 生活在别处 阅读(3570) 评论(3)  编辑  收藏 所属分类: Java
        项目开发中,碰到的问题,原先设计的字段,定为VARCHAR2类型,最大长度为4000 bytes,实际的应用中,内容往往超过两千汉字,没办法正常插入,因此改为clob大字段类型。
        采用Hibernate,实现Clob和Blob对象的存取, 网上有很多解决方案,但是比较老,实际运用中,可能会碰到各种问题。下面是我采用的方案,比较简单,希望对碰到这个问题的人,有帮助。
        目前oracle的driver已经支持JDBC 直接操作 CLOB了,但是使用旧的driver的时候,会遇到各种问题,如2k字符的问题。
         最新的oracle10g的driver,已经解决了这些问题。我项目用ojdbc14-10.2.0.3.0.jar 连接oracle9i数据库,可以正常读写CLOB。
         Hibernate存取Clob和Blob对象,将 clob用string方式处理。
         Hibernate Annotations方式,只要映射成Lob类型就可以,对该字段的读写,就是一般的操作方式。

        @Lob
    public String getTxt() {
        
return txt;
    }

        好了,就是这么简单!

Feedback

# re: Hibernate实现Clob和Blob对象的存取   回复  更多评论   

2007-11-03 19:41 by lan
这样的方法的确可行,我去年也是这么解决的。当时还参照了javaeye上很多的文章,尤其是robbin的。经过测试,只能这样在9i上跑,对于8i和10g都是不行的。
建议使用spring对于Lob的封装处理!

# re: Hibernate实现Clob和Blob对象的存取 [未登录]  回复  更多评论   

2007-11-05 08:37 by 坏男孩
我崇尚简单,喜欢这种方式!!

# re: Hibernate实现Clob和Blob对象的存取   回复  更多评论   

2007-11-05 12:59 by 红蓝铅笔
能详细点吗?配置文件能贴出来吗?

只有注册用户登录后才能发表评论。


网站导航: