spring+hibernate操作Blob字段

neweastsun 2012-12-06

spring+hibernate操作Blob字段,解决image字段超过4000个字节hibernate无法提交的问题。

1.pojo类image字段类型为byte[];

2.hbm映射文件image的type="org.springframework.orm.hibernate3.support.BlobByteArrayType"

3.spring配置文件,注意,数据库连接池用的是c3p0:

 <!-- spring处理Blob字段 @author ma_chunlin @date 2012-12-6-->

<beanid="lobHandler"lazy-init="true"

class="org.springframework.jdbc.support.lob.OracleLobHandler">

<propertyname="nativeJdbcExtractor"ref="nativeJdbcExtractor"/>

</bean>

<!--c3p0的配置:-->

<beanid="nativeJdbcExtractor"lazy-init="true"

      class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" />

如果是用oralce原生jdbc,可有如下选择(网上说的,本人未确认):

<!--oracle9i-->

<bean id="nativeJdbcExtractor" lazy-init="true"class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>

<!--oracle10g-->

<bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>

4. spring sessionFactory的配置:

  <bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

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

     <!-- Blob字段的特殊处理 -->

<propertyname="lobHandler"ref="lobHandler"/>

<propertyname="configLocation"value="classpath:hibernate.cfg.xml">

</property>

</bean>

相关推荐