`

关于spring 操作 LOB 数据的抽取器

阅读更多

介绍用到的几个spring类:

OracleLobHandler:

   它是org.springframework.jdbc.support.lob.LobHandler接口的oracle数据库实现, 它使用Oracle's JDBC driver(必须是Classes14.jar,不能是classes12.jar) API创建oracle.sql.BLOB and oracle.sql.CLOB的实例,这个LobHandler只支持oracle 9以上的版本。(附注:其它数据库如mysql等使用默认的DefaultLobHandler就可以了)。

CommonsDbcpNativeJdbcExtractor

 

  OracleLobHandler必须工作在一个本地的jdbc连接上以便能将该连接转换成oracle.jdbc.OracleConnection, 如果你的连接是从连接池中取得的(在大多数J2ee应用中都是这种情况),那么你的连接很有可能是被包装过的连接,

为了取得原始连接你必须设置 NativeJdbcExtractor。使用的连接池不同,NativeJdbcExtractor的具体实现也是不一样的,

下表列出了各种连接池对应的 NativeJdbcExtractor

 

 连接池  是否封装了底层的jdbc对象  NativeJdbcExtractor实现
 Resin,SJSAS    否  SimpleNativeJdbcExtractor
 OC4J,C3P0    是  SimpleNativeJdbcExtractor(要将nativeConnectionNecessaryForXxx设置为true)

 Jakarta Commons DBCP

  是

 

 CommonsDbcpNativeJdbcExtractor

 

 

 

对于那些仅封装了Connection而未包括Statement的简单数据连接 池,SimpleNativeJdbcExtractor 是效率最高的抽取器实现类,但具体到apache的BasicDataSource 连接池,它封 装了所有JDBC的对象,这时就需要使用CommonsDbcpNativeJdbcExtractor 了。Spring针对几个著名的Web服务器的数 据源提供了相应的JDBC抽取器:

  ·WebLogic:WebLogicNativeJdbcExtractor

  ·WebSphere:WebSphereNativeJdbcExtractor

  ·JBoss:JBossNativeJdbcExtractor

  在定义了JDBC抽取器后,再定义lobHandler。Spring 提供了两个lobHandler:

  ·DefaultLobHandler:适用于大部分的数据库,如SqlServer,MySQL,对Oracle 10g也适用,但不适用于Oracle 9i(看来Oracle 9i确实是个怪胎,谁叫Oracle 公司自己都说Oracle 9i是一个过渡性的产品呢)。

  ·OracleLobHandler:适用于Oracle 9i和Oracle 10g。

分享到:
评论

相关推荐

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

    在Spring框架中,LOB(Large Object)字段通常用于存储大数据,如BLOB(Binary Large Object)用于二进制数据,如图片或文档,CLOB(Character Large Object)用于字符数据,如长文本。本篇文章将深入探讨如何在...

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

    在探讨SQL Server数据库中存储LOB(Large Object)数据的策略与方法时,首先需要理解几个核心概念和原理。LOB数据类型通常是指存储在数据库中非常大的二进制或者字符型数据,例如文档、图表和图像文件。这些数据的...

    java存lob数据到sybase数据库

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

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

    在实际操作中,你可能需要使用`InputStream`和`OutputStream`来读写LOB字段的数据。例如,当保存BLOB字段时,可以先将文件内容读入`InputStream`,然后通过Hibernate的`Session`接口进行持久化: ```java ...

    Oracle数据库中LOB的调优.pdf

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

    DB2 LOB 详解

    DB2 LOB详解涉及的知识点非常丰富,下面将从DB2中LOB字段的存储及处理过程、如何创建LOB数据对象、维护LOB数据的注意事项、使用工具进行维护等方面进行详细说明。 首先,DB2中LOB字段的存储和处理过程是一门深奥的...

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

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

    这里,`lob_loc`是指向目标LOB的定位器,`amount`是要写入的数据量,`offset`是从LOB中的哪个位置开始写入,`buffer`是待写入的数据缓冲区。 ##### 示例:向LOB字段写入数据 下面是一个具体的示例,演示如何使用`...

    Oracle LOB 详解

    LOB 的维护包括创建、修改、删除等操作。 Oracle 提供了多种维护 LOB 的方式,包括: * 使用 SQL 语句维护 LOB。 * 使用 PL/SQL 维护 LOB。 * 使用 OCI 维护 LOB。 四、LOB 的优点和缺点 LOB 有很多优点,例如: ...

    Oracle LOB字段处理工具

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

    ODI LOB 类型KM

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

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

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

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

    Oracle中对LOB对象的操作.pdf

    4. **BFILE**:Binary File,用于存储操作系统中的大型二进制文件,BFILE不存储实际数据,而是存储指向服务器上文件的定位器。这意味着BFILE数据是外部的,不在数据库内,只支持读取操作。 处理LOB数据时,Oracle...

    地震前兆Oracle LOB数据压缩与交换及其访问效率研究.pdf

    本篇文章主要探讨了Oracle数据库中Large OBject(LOB)数据的压缩、交换以及访问效率问题。由于在地震前兆监测领域,数据库存储了大量的观测数据,通常这些数据具有体积庞大、增速快的特点,因此存储和处理这些数据...

Global site tag (gtag.js) - Google Analytics