spring为hibernate提供了对LOB对像的支持,以oracle数据库为例,配置方法如下:
一.spring配置文件
<!-- 使用jndi连接数据库 -->
<!--<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/develop</value>
</property>
</bean>-->
<!-- 本地Tomcat配置 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@192.168.0.123:1521:dbserver</value>
</property>
<property name="username">
<value>develop</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!--spring 对 LOB的支持就是要配置这个属性,这里是对oracle的LOB的支持-->
<property name="lobHandler">
<ref local="oracleLobHandler" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.query.factory_class">
org.hibernate.hql.ast.ASTQueryTranslatorFactory
<!-- org.hibernate.hql.classic.ClassicQueryTranslatorFactory -->
</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">30</prop>
</props>
</property>
<property name="mappingLocations">
<list>
<value>classpath:/com/abc/**/entity/*.hbm.xml</value>
</list>
</property>
</bean>
<!-- 对oracle的LOB支持-->
<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>
<!-- 设置本地 Jdbc 对象抽取器-->
<!-- webLogic下的配置 -->
<!-- bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractor"
lazy-init="true" /-->
<!-- tomcat下的配置 -->
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init="true" />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- 事务管理-->
<!-- 事务拦截器-->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<!-- 事务代理-->
<bean id="transactionProxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="proxyTargetClass" >
<value>true</value>
</property>
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
说明:上文还是很具有实用价值的,不过对LOB的支持只有这一段:
<!-- 对oracle的LOB支持-->
<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>
<!-- 设置本地 Jdbc 对象抽取器-->
<!-- webLogic下的配置 -->
<!-- bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractor"
lazy-init="true" /-->
<!-- tomcat下的配置 -->
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init="true" />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
二.配置hibernate影射文件
对clob和blob配置时使用如下方式:
<!--clob -->
<property name="context" column="context" type="org.springframework.orm.hibernate3.support.ClobStringType"/>
<!--blob -->
<property name="data" column="data" type="org.springframework.orm.hibernate3.support.BlobByteArrayType" />
这里需要注意一下,spring对clob的支持最大为2G
三.pojo配置
clob 对应类型为String,blob 对应类型为byte[],如下:
String context;
byte[] data;
set and get method;
保存或取出数据时将其转换为响应的类型即可。
分享到:
相关推荐
NULL 博文链接:https://liubing1883.iteye.com/blog/405679
通过spring存blob和clob数据到sybase数据库中,压缩包里包含了三种方式,(1)spring+hibernate,切面事务(aop),存lob数据,(2)spring+hibernate存lob数据,(3)spring+jdbc存lob数据。
第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。 第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及...
第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。 第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及...
Struts+Spring+Hibernate实现上传下载 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本: •Struts 1.2 •Spring 1.2.5 •Hibernate 3.0 本文...
oracle dbms_lob 智能大对象(Blob、Clob)
NULL 博文链接:https://sosuny.iteye.com/blog/446112
NULL 博文链接:https://surfingforrest.iteye.com/blog/711612
ORACLE LOB大对象处理.doc ORACLE LOB大对象处理.doc
Oracle中对LOB对象的操作.pdf
NULL 博文链接:https://ylsuccess.iteye.com/blog/411005
oracle dbms_lob
ORACLELOB大对象处理[定义].pdf
LOB语料库 创建时间: 1970年代初 创建单位:英国Lancaster大学和挪威Oslo大学以及Bergen大学 规模层级: 100万词次 基本情况:研究当代英国英语,与美国英语对比,使用了TAGIT系统,以统计方式建立换算几率矩阵,提高标注...
10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼 10.6.1 哪些方法不能实施Spring AOP事务 10.6.2 事务增强遗漏实例 10.7 数据连接泄漏 10.7.1 底层连接资源的访问问题 10.7.2 Spring JDBC...
structs1.2 spring2.5 hibernate3.0 java web 对clob大文本 blob图像处理 这是一个完整的例子,整合了ckeidtor,servlet直接显示数据库blob图片, 注意oracle驱动ojdbc14.jar,如果是其他驱动例如ojdbc14_*g都是不...
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
Oracle数据库,更改表空间的命令,包括table、index、lob对象。
sdbmigrationtool SequoiaDB数据库集合间数据迁移工具,支持结构化,半结构化和Lob对象的迁移,提供多线程,限速,校正,修复功能。当前版本支持功能如下:提供多线程并发功能支持输出迁移速率的统计信息结构化,半...
sybase IQ LOB手册,这个功能能让你在IQ中村图片和视频