`
小小白
  • 浏览: 36041 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 让 LOB 数据操作变得简单易行

阅读更多

 

LobHandler 的配置
 MYSQL下的

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

Oracle下的lobHandler配置

<bean id="lobHandler"
	class="org.springframework.jdbc.support.lob.OracleLobHandler"
	lazy-init="true" >
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/> 
</bean>

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

 

将 LobHandler 注入到 SessionFactory 中

 

…
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler"
 lazy-init="true" />
<bean id="sessionFactory"  
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="lobHandler" ref="lobHandler" /> ① 设置 LOB 处理器
  …
</bean>

使用 LobHandler 操作 LOB 数据时,需要在事务环境下才能工作,所以必须事先配置事务管理器,否则会抛出异常。

 

事务的配置

	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>

	<!-- 定义事务拦截器bean -->
	<bean id="transactionInterceptor"
		class="org.springframework.transaction.interceptor.TransactionInterceptor">
		<property name="transactionManager" ref="transactionManager" />
		<property name="transactionAttributes">
			<props>
				<prop key="*">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean>

	<bean id="autoProxyCreator"
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="beanNames">
			<value>*DAO</value>
		</property>
		<property name="interceptorNames">
			<list>
				<value>transactionInterceptor</value>
			</list>
		</property>
		<property name="proxyTargetClass">
			<value>true</value>
		</property>
	</bean>

 

*.hbm文件配置

        <property name="content" type="org.springframework.orm.hibernate3.support.ClobStringType">
            <column name="content"/>
        </property>
 

在使用的时候直接当String类型使用。

 

更为详细的配置说明:http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html

分享到:
评论

相关推荐

    简单易行:Spring中操作LOB字段案例

    总结起来,本文通过一个简单的Spring案例展示了如何操作LOB字段,包括创建DAO方法,使用`JdbcTemplate`进行数据库操作,以及在Web应用中处理文件上传。同时,我们也了解了如何配置Spring的`JdbcTemplate`和数据库...

    SQL Server存储LOB数据的策略与方法.pdf

    如果LOB数据大小超过指定的上限值或者数据行空间不足,则LOB数据行中将只存放指针。 在存储LOB数据的方法上,文档中提到了两种主要策略。一种是建立具有Image字段的SQL Server数据库关系表,并使用sp_tableoption...

    Spring+Hibernate处理Oracle lob字段(一)

    在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...

    java存lob数据到sybase数据库

    通过spring存blob和clob数据到sybase数据库中,压缩包里包含了三种方式,(1)spring+hibernate,切面事务(aop),存lob数据,(2)spring+hibernate存lob数据,(3)spring+jdbc存lob数据。

    Oracle数据库中LOB的调优.pdf

    在Oracle数据库中,LOB数据类型的存储和优化是非常重要的,因为LOB数据类型占用的存储空间较大,且其读写操作也较慢。 在创建包含LOB字段的表时,Oracle将同时创建两个段来容纳指定的列,这两个段分别为LOBINDEX和...

    DB2 LOB 详解

    在DB2中,LOB数据类型的创建和维护比传统的RDBMS对象要复杂得多。创建LOB数据对象时,DBA需要特别注意记录大小必须小于等于DB2表中定义的页面大小。页面大小包括了控制信息,比如页面头(20字节)、行头(6字节)...

    oracle dbms_lob

    总之,`DBMS_LOB`是Oracle数据库管理LOB数据的关键工具,对于处理大量非结构化数据的开发者来说,理解和熟练使用这个包是必不可少的技能。通过深入学习和实践,可以有效地利用Oracle的LOB功能满足大数据存储和处理的...

    Oracle Lob Performance Guidelines

    7. **避免不必要的数据复制**:当需要对 LOB 数据进行操作时,尽量避免不必要的数据复制过程,例如通过使用 `KEEP` 或 `BASICFILE` 子类型来减少数据移动。 8. **使用 Direct Path 插入**:在插入大量 LOB 数据时,...

    ORACLE LOB大对象处理

    插入LOB数据通常涉及多次数据库操作,因为数据被分块读写。例如: ```sql INSERT INTO mylobs VALUES (1, EMPTY_BLOB(), EMPTY_CLOB()); DECLARE lob_loc BLOB; BEGIN SELECT blob_data INTO lob_loc FROM ...

    Oracle LOB字段处理工具

    在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。"Oracle LOB字段处理工具"就是为了简化这些操作而设计的软件。 这款工具主要针对Oracle数据库中的BLOB...

    Oracle LOB 详解

    可以在插入行时设置persistent LOB 到 NULL,例如在没有 LOB 数据时。如果想使用 OCI 或 DBMS_LOB 函数,需要将 LOB 列设置为非 NULL 或 empty。 二、LOB 的存储 LOB 可以存储在表中,也可以作为对象类型的属性。 ...

    本文档主要介绍如何对LOB字段进行处理

    以上代码首先通过查询获取了目标行的`document`字段的LOB定位器,然后准备了要写入的文本数据,并通过`DBMS_LOB.WRITE()`过程将文本写入CLOB字段。 #### 结论 本文详细介绍了在Oracle数据库中如何使用和维护LOB...

    前端开源库-lob

    Lob库为前端开发者提供了一层友好的封装,使得调用LOB API变得更加简单。它通过JavaScript对象和方法,将复杂的HTTP请求和JSON格式化隐藏在底层,让开发者能够专注于业务逻辑,而不是处理低级别的网络通信。例如,你...

    ODI LOB 类型KM

    JYTHON允许用户利用Python的灵活性和强大功能进行复杂的数据处理,例如处理LOB数据的格式化、压缩或者解压缩等操作。这个KM对于那些需要对LOB数据进行特定处理或清洗的场景非常有用。 在实际应用中,这两个KM可以...

    lob字段数据删除空间测试.txt

    测试oracle数据库中,lob字段在不同参数条件下,删除数据后占用空间的情况。 测试1 测试disable storage in row下的lob字段 测试2 测试非disable storage in row模式下 该模式为默认模式,既小于4k的数据不会存在lob...

    使用JDBC数据接口存取Oracle LOB(大对象).pdf

    Oracle的LOB解决方案进一步完善了其数据库管理系统,使得存储和访问大非结构化数据变得更加便捷和统一。 总的来说,这篇文章深入浅出地讲解了Oracle数据库如何使用LOB类型存储非结构化数据,以及如何通过JDBC接口...

    OCI_LOB样例程序

    `OCI_LOB`样例程序是针对LOB数据类型在OCI中的操作提供的一系列示例代码,旨在帮助开发者理解如何在Oracle数据库中创建、读取、更新和删除LOB对象。下面将详细介绍这些知识点。 1. OCI LOB基础概念: - BLOB:二...

    用PHP操纵Oracle的LOB类型的数据

    在Oracle数据库中,当需要存储超过VARCHAR2类型最大限制(4000个字符或2000个汉字)的数据时,可以使用LOB(Large Object)类型,包括BLOB(Binary Large OBject)、CLOB(Character Large OBject)以及BFILE。...

Global site tag (gtag.js) - Google Analytics