spring+hibernate中配置对oracle的lob字段进行操作。
spring中配置
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init="true" />
<bean id="lobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>
WebSphere 4 及以上版本的数据源:org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractorWebLogic 6.1+ 及以上版本的数据源:org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractorJBoss 3.2.4 及以上版本的数据源:org.springframework.jdbc.support.nativejdbc.JBossNativeJdbcExtractor
C3P0 数据源:org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor
DBCP 数据源:org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor
ObjectWeb 的 XAPool 数据源:org.springframework.jdbc.support.nativejdbc.XAPoolNativeJdbcExtractor
LobHandler 接口为操作 BLOB/CLOB 提供了统一访问接口,而不管底层数据库究竟是以大对象的方式还是以一般数据类型的方式进行操作。此外,LobHandler 还充当了 LobCreator 的工厂类。
大部分数据库厂商的 JDBC 驱动程序(如 DB2)都以 JDBC 标准的 API 操作 LOB 数据,但 Oracle 9i 及以前的 JDBC 驱动程序采用了自己的 API 操作 LOB 数据,Oracle 9i 直接使用自己的 API 操作 LOB 数据,且不允许通过 PreparedStatement 的setAsciiStream()、setBinaryStream()、setCharacterStream() 等方法填充流数据。Spring 提供 LobHandler 接口主要是为了迁就 Oracle 特立独行的作风。所以 Oracle 必须使用 OracleLobHandler 实现类,而其它的数据库统一使用 DefaultLobHandler 就可以了。Oracle 10g 改正了 Oracle 9i 这个异化的风格,终于天下归一了,所以 Oracle 10g 也可以使用 DefaultLobHandler。
sessionFactory bean中添加 <property name="lobHandler" ref="lobHandler"/>
hibernate映射文件中:
<property name="**" type="org.springframework.orm.hibernate3.support.ClobStringType" >
http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/
注:对lob的操作需在事务中进行,否则会报错。
分享到:
相关推荐
Oracle数据库系统中,`DBMS_LOB`是一个重要的PL/SQL包,专门用于处理大型对象(LOBs,Large Object)。LOBs是Oracle提供的一种数据类型,用于存储大量数据,如文本、图像、音频或视频文件等。这个包包含了各种过程和...
Oracle数据库中LOB的调优 Oracle数据库中的LOB(Large OBject)是一种特殊的数据类型,用于存储大量的二进制数据或字符数据。LOB数据类型包括BLOB、CLOB、NCLOB和BFILE四种,分别用于存储二进制数据、字符数据、...
Oracle LOB 详解 Oracle LOB(Large OBject)是一种复杂的数据类型,用于存储大型二进制数据,如图像、音频、视频等。 Oracle LOB 详解涵盖了 LOB 的基本概念、创建、存储、维护等方面,旨在帮助开发者和数据库...
### Oracle LOB (Large Object) 性能指南 在数据库管理与优化领域,Oracle LOB 类型因其存储大量文本或二进制数据的能力而被广泛使用。然而,正确地使用和优化 LOB 可以显著提升数据库应用的整体性能。本文档将基于...
LOB语料库 创建时间: 1970年代初 创建单位:英国Lancaster大学和挪威Oslo大学以及Bergen大学 规模层级: 100万词次 基本情况:研究当代英国英语,与美国英语对比,使用了TAGIT系统,以统计方式建立换算几率矩阵,提高标注...
Oracle数据库中的LOB(Large Object)类型是用来存储大量数据的,如文本、图像、音频或视频等。LOBs分为四种类型:BLOB(Binary Large Object)用于二进制数据,CLOB(Character Large Object)用于字符数据,NCLOB...
**前端开源库-Lob** Lob是一个强大的前端开源库,主要设计用于简化与LOB(Letters, Cards, and Labels)API的交互。LOB API是后端服务,它允许开发者轻松地创建和发送高质量的物理邮寄,如信件、卡片和标签。在Web...
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
### 如何对LOB字段进行处理 #### 摘要与背景 随着信息技术的进步及应用需求的不断扩展,数据库管理系统(DBMS)面临着存储多样化数据类型的挑战。例如,在开发旅游信息系统时,除了基本的文字信息外,还需要处理大量...
Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。...
DB2 LOB详解涉及的知识点非常丰富,下面将从DB2中LOB字段的存储及处理过程、如何创建LOB数据对象、维护LOB数据的注意事项、使用工具进行维护等方面进行详细说明。 首先,DB2中LOB字段的存储和处理过程是一门深奥的...
Sybase IQ LOB手册是一本专业指导手册,旨在为Sybase IQ数据库管理系统用户提供如何在IQ中管理大对象(LOB)的指导。LOB主要指图片、视频、音频等大型数据类型,这类数据因为其体积较大,不适合用常规的关系型字段...
在Spring框架中,LOB(Large Object)字段通常用于存储大数据,...同时,我们也了解了如何配置Spring的`JdbcTemplate`和数据库连接池,以支持LOB字段的存储和检索。这些知识对于在Spring环境下处理大数据存储至关重要。
在探讨SQL Server数据库中存储LOB(Large Object)数据的策略与方法时,首先需要理解几个核心概念和原理。LOB数据类型通常是指存储在数据库中非常大的二进制或者字符型数据,例如文档、图表和图像文件。这些数据的...
LOB语料库是模仿Brown语料库的比例建立起来的英国英语语料库,其预料搜集自1961年英国英语出版物上的文本,共500篇,每篇大约2000个单词,合计100万单词。Brown语料库带词性标记,LOB语料库不带词性标记。
在给定的压缩包文件中,我们有两个与LOB(Large Object)类型相关的Knowledge Modules(KM),它们是KM_IKM Oracle Incremental UpdateLOB.xml和KM_LKM SQL to SQL LOB (JYTHON).xml。 首先,让我们详细了解一下LOB...
在Oracle数据库中,LOB(Large Object)是用来存储大量数据的数据类型,如文本、图像或音频文件。OCI(Oracle Call Interface)是Oracle提供的C语言接口,用于开发与Oracle数据库交互的应用程序。`OCI_LOB`样例程序...
接下来是Hibernate的映射文件(hbm.xml)配置,同样需要指定lob-type以确保正确处理LOB字段: ```xml ``` 为了连接Oracle数据库,你需要在项目的类路径下包含Oracle的JDBC驱动,这里...