Blob与Clob

spring 为blob和clob进行了封装,可以不用考虑数据库类型,处理大对象。
数据库字段类型 类中属性类型 hibernate hbm中属性类型 

 

数据存储在Blob类型的字段上,在Spring中采用 OracleLobHandler来处理Lob字段(包括Clob和Blob),在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据 库处理Lob字段方法上的差别,从而撤除程序在多数据库移植上的樊篱。  

 1.首先数据表中的Blob字段在Java领域对象中声明为byte[]类型,而非java.sql.Blob类型。

   2.数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用户自定义的类型,而非java.sql.Blob。  

 3.在Spring中使用org.springframework.jdbc.support.lob.OracleLobHandler处理Oracle数据库的Blob类型字段。

 如果存储Clob类型的字段上

 1.领域对象对应Clob字段的属性声明为String类型;

 2.映射文件对应Clob字段的属性声明为org.springframework.orm.hibernate3.support.ClobStringType类型。

 

spring中配置

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

hibernate中的sessionfactory中设置

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

你可能感兴趣的:(blob)