spring+hibernate操作Blob字段
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>