Blob與Clob

spring 爲blob和clob進行了封裝,能夠不用考慮數據庫類型,處理大對象。
數據庫字段類型 類中屬性類型 hibernate hbm中屬性類型 
java

 

數據存儲在Blob類型的字段上,在Spring中採用 OracleLobHandler來處理Lob字段(包括Clob和Blob),在程序中不須要引用到oracle數據驅動程序的具體類且屏蔽了不一樣數據 庫處理Lob字段方法上的差異,從而撤除程序在多數據庫移植上的樊籬。   spring

 1.首先數據表中的Blob字段在Java領域對象中聲明爲byte[]類型,而非java.sql.Blob類型。 sql

   2.數據表Blob字段在Hibernate持久化映射文件中的type爲org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用戶自定義的類型,而非java.sql.Blob。   數據庫

 3.在Spring中使用org.springframework.jdbc.support.lob.OracleLobHandler處理Oracle數據庫的Blob類型字段。 session

 若是存儲Clob類型的字段上 oracle

 1.領域對象對應Clob字段的屬性聲明爲String類型; spa

 2.映射文件對應Clob字段的屬性聲明爲org.springframework.orm.hibernate3.support.ClobStringType類型。 hibernate

 

spring中配置 orm

<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>

相關文章
相關標籤/搜索