oracle clog读取 php,Spring+Hibernate中处理Oracle的BLOG和CLOG字段

对于BLOG和CLOB字段,大部分数据库提供了较为透明的支持,但Oracle比较特殊一些,在用Spring和Hibernate操作时,需要作一些特殊的处理,以CLOB为例,基本有下面几个步骤:

1、在Spring的配置文件中加入以下几个Bean的定义

2、在sessionFactory这个Bean中加入一个属性的引用

3、在需要clob的JavaBean对应的hbm.xml中,改对应的clob类型的字段

name="XXX" type="org.springframework.orm.hibernate3.support.ClobStringType"

clumn=""

length="XXX"

/>

4、 JavaBean的对应的属性类型为String。

基本上是这四个要点。需要注意两点:(1)如果使用Oracle9i自带的class12.jar这个JDBC驱动的话是不行的,会报错,据说要升级到classes12-9i.jar,我在Oracle的网站上没找到对应的下载,下载了ojdbc14.jar就可以了。(2)对Clob或Blog的操作必须在一个事务中进行,如在Dao层测试会出错,在配置了事务的Logic层就没问题了。

据说如果用Oracle10g的JDBC驱动就没这么麻烦了,下面一段说来自网络,没有验证测试过:

Hibernate+Oracle+CLOB的读写其实只要这样做:

1.在Oracle里设置某字段为clob类型。

2.在Hibernate的配置文件里使用网上下载的Oracle 10g最新的jdbc驱动。

3.实体类里把clob字段对应的属性类型设置为String。

4.hibernate的映射文件*.hbm.xml里把该字段对应的类型该为text。

然后就可以在程序里把它当成String随便用了。

在到Oracle网站下载驱动时看到下面一段说,以后开发适当注意一下:

The Oracle JDBC drivers will no longer support the use of the package oracle.jdbc.driver in

future releases. Oracle JDBC 10.2 is the last release to support such package.

If your code uses any class in this package it will not compile or run with the Oracle JDBC drivers. Please replace all references to classes in the package oracle.jdbc.driver with references to the identically named class or interface in the package oracle.jdbc.

If there is no corresponding type in oracle.jdbc then you will need to use a standard J2SE type.

The classes in the package oracle.jdbc.driver will no longer be visible in the Oracle JDBC drivers. See Metalink Note 335754.1 for more details.

补充:按照上面的方法又写了一个测试类,能够操作Clob字段了,但是启动JBOSS后就不能用了,后来找了很久才发现,原来我用的JBOSS的default/lib目录下也有一下老版本的Class12.jar,删除它换成最新的ojdbc14.jar就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值