Spring+Hibernate处理Oracle lob字段(一)

最近需要在项目中使用lob字段,所使用的数据库是Oracle 9i,spring applicationContext.xml配置如下:

<bean id="nativeJdbcExtractor"
		 class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" 
lazy-init="true"/>
	
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" 
lazy-init="true">
	<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/>
</bean>
 

在sessionFactory配置中加入如下属性:

<property name="lobHandler" ref="lobHandler"/>

 

在hibernate.hbm.xml中,对于clob字段使用org.springframework.orm.hibernate3.support.ClobStringType,对于blob字段使用org.springframework.orm.hibernate3.support.BlobByteArrayType。

以上配置后,需要对处理lob字段的方法加上事务,使用spring声明式事务即可。

这也是网上介绍最多的方法,但是一开始按照这么做抛出了异常,反复调试不果,最近升级了一下Oracle9i的驱动,问题得以解决。原来不成功的原因是驱动程序版本较低,原来使用的版本是9.2.0.1.0自带的JDBC驱动,现在升级到新的Oracle9i 9.2.0.8 JDBC Drivers,终于可以正确的操作lob字段(可运行的驱动见附件)。

你可能感兴趣的:(spring,oracle,Hibernate,bean,jdbc)