`

NativeJdbcExtractor

 
阅读更多
有时候必要会对数据库clob、 blob数据型进行操作,再加上spring 环境不得不要启用NativeJdbcExtractor 来帮助完成相关工作。
 
spring 官方文档中注明:

 

Sometimes you need to access vendor specific JDBC methods that differ from the standard JDBC API. This can be problematic if you are running in an application server or with a DataSource that wraps the ConnectionStatement and ResultSet objects with its own wrapper objects. To gain access to the native objects you can configure yourJdbcTemplate or OracleLobHandler with a NativeJdbcExtractor.

翻译:

有时候,你需要访问特定于供应商的JDBC方法不同于标准JDBC API。这可能会出现问题,如果你正在运行一个应用程序服务器或一个DataSource包装的连接,Statement和ResultSet对象与自己的包装对象。要获得本地对象,你可以配置你JdbcTemplate或OracleLobHandler的一个NativeJdbcExtractor。

The NativeJdbcExtractor comes in a variety of flavors to match your execution environment:

  • SimpleNativeJdbcExtractor

  • C3P0NativeJdbcExtractor

  • CommonsDbcpNativeJdbcExtractor

  • JBossNativeJdbcExtractor

  • WebLogicNativeJdbcExtractor

  • WebSphereNativeJdbcExtractor

  • XAPoolNativeJdbcExtractor

Usually the SimpleNativeJdbcExtractor is sufficient for unwrapping a Connection object in most environments. See the Javadocs for more details.

 

spring 配置文件如下:

 

<!-- nativeJdbcExtractor 和 oracleLobHandler Bean 都设置为 lazy-init="true",这是因为 -->

<!-- nativeJdbcExtractor 需要通过运行期的反射机制获取底层的 JDBC 对象, -->

<!-- 所以需要避免在 Spring 容器启动时就实例化这两个Bean。 -->

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

 

<!-- 我的实现类,因为我用的是C3P0 连接池方式,配置的nativejdbcextractor是C3P0 。 -->

<bean id="simpleWriterBlob" class="com.ww.jdbc.writer.blob.SimpleWriterBlob">
<property name="dataSource" ref="dataSource"></property>
<property name="lobHandler" ref="oracleLobHandler"></property>
</bean>

 

分享到:
评论

相关推荐

    spring jdbc相关包版本5.1.3

    在IT行业中,Spring框架是Java开发中的重要工具,特别是对于企业级应用的开发。Spring JDBC模块是Spring框架的一部分,它提供了对JDBC(Java Database Connectivity)的高级抽象,简化了数据库操作。...

    spring+hibernate操作oracle的clob字段

    &lt;bean id="nativeJdbcExtractor" lazy-init="true" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/&gt; ``` 3. **事务管理** 对CLOB字段的操作通常涉及数据库事务,因此需要在...

    spring oracle blob

    &lt;bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" lazy-init="true"/&gt; &lt;property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/&gt; `...

    SSH+Oracle上传图片

    &lt;property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"&gt; &lt;property name="lobHandler"&gt;&lt;ref bean="oracleLobHandler" /&gt; &lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt; `...

    Spring源代码解析3:SpringJDBC[归纳].pdf

    在获取到连接后,`JdbcTemplate`可能需要对连接进行特殊处理,如使用`nativeJdbcExtractor`获取原生的数据库连接,或者创建一个关闭抑制的连接代理,以准备返回的Statement。 3. **异常处理**: 当在数据库操作中...

    spring+hibernate 解决大字段(clob)

    &lt;bean id="C3PONativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" lazy-init="true"/&gt; ``` 这里的关键在于配置了`lobHandler` Bean来处理CLOB和BLOB类型的字段。...

    Spring源代码解析(三):Spring_JDBC.doc

    JdbcTemplate在内部首先通过`DataSourceUtils.getConnection`获取数据库连接,并可能对连接进行一些特殊处理,例如如果存在`NativeJdbcExtractor`,则会尝试获取原生的JDBC连接,或者创建一个代理连接以支持...

    ssh(structs,spring,hibernate)框架中的上传下载

     首先,必须定义一个能够从连接池中抽取出本地数据库JDBC对象(如OracleConnection,OracleResultSet等)的抽取器:nativeJdbcExtractor,这样才可以执行一些特定数据库的操作。对于那些仅封装了Connection而未包括...

    SPRING API 2.0.CHM

    C3P0NativeJdbcExtractor CachedIntrospectionResults CachingDestinationResolver CachingMapDecorator CallableStatementCallback CallableStatementCreator CallableStatementCreatorFactory ...

    mysql-jdbc-Spring源代码分析

    这部分通过`NativeJdbcExtractor`实现。 3. **执行回调逻辑**:调用传入的`ConnectionCallback`对象的`doInConnection`方法,执行用户自定义的数据库操作逻辑。 4. **异常处理**:如果执行过程中发生`SQLException`...

    spring-framework-reference4.1.4

    Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................

    Spring中文帮助文档

    NativeJdbcExtractor 11.4. JDBC批量操作 11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据...

    Spring API

    NativeJdbcExtractor 11.4. JDBC批量操作 11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据...

    spring-framework-reference-4.1.2

    Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................

Global site tag (gtag.js) - Google Analytics