oracle中的blob数据类型,在hihbernate映射中使用spring辅助类型:
<property name="filedata" type="org.springframework.orm.hibernate3.support.BlobByteArrayType">
<column name="filedata" />
</property>
在VO中,对应的类型应该为byte[]
private byte[] filedata;
需要sping中配置相关的bean
<!--配置处理blob大数据 -->
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor"/>
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor" />
</property>
</bean>
然后在sessionFactory中,将oracleLobHandler注入。
<!-- blob大数据处理 -->
<property name="lobHandler" ref="oracleLobHandler"></property>
然后,就可以和普通数据类型一样,直接通过hibernate API进行存取操作了。
注意:
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor"/>
这里是利用了c3p0连接池的情况下用: C3P0NativeJdbcExtractor
如果是dpcp连接池,则用:CommonsDbcpNativeJdbcExtractor
如果没有使用连接池,则用:SimpleNativeJdbcExtractor
其他的,用了jboss,weblogic连接池等等的情况,都有专门的Extractor对应。