为什么使用NativeJdbcExtractor

原文:http://blog.csdn.net/hehexiaoyou/article/details/21019171
---------------------------------------------------------------------------

有时候必要会对数据库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>


------------另一篇转载----------------------------------

近来对一个项目进行维护

发现其之前用的是WebSphere,我准备将其更改到Tomcat上

于是悲剧开始上演。各种配置,各种报错。


createBeanException

原来是使用的WebSphereNativeJdbcExtractor现改为其它连接方式,则需要更改。

详细参考:

在spring里 插入 BLOB字段
kp.setContent(content.getBytes()); 
方法 :hibernate saveOrUpdate


Caused by: java.lang.ClassNotFoundException: oracle.sql.BLOB。
       使用tomcat 没问题。
       可服务器改为 WebSphere .就报错。

把Spring内置提供的NativeJdbcExtractor转换器 改了一下,结果:问题解决。
———————————————————————————————————————————————————————
总结如下:
      1、对于我们的工程:
           在发布环境中,要将nativeJdbcExtractor  换成             org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor
留意log4j日志,此时的blob字段的java类型为oracle.sql.Blob
      2、Spring内置提供的NativeJdbcExtractor转换器有:
          C3P0NativeJdbcExtractor
          CommonsDbcpNativeJdbcExtractor
          JBossNativeJdbcExtractor
          NativeJdbcExtractor
          NativeJdbcExtractorAdapter
          SimpleNativeJdbcExtractor
          WebLogicNativeJdbcExtractor
          WebSphereNativeJdbcExtractor
          XAPoolNativeJdbcExtractor
          要根据不同服务器及时修改,以免浪费大量时间。
          位于org\springframework\jdbc\support\nativejdbc下



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7.1下KVM的安装与配置

由于没有物理机可用&#xff0c;在自己的VMware Workation中CentOS 7搭建完成。 首先查看VMware Workation是否支持虚拟化&#xff0c;把红框内打钩即可。 虚拟化开启并安装CentOS系统&#xff0c;建议CentOS安装64bit。我的环境用的是CentOS 7。进入系统&#xff0c;首先查看服…

软件生成问候图片_这些社交软件你玩过几个?

提到聊天软件&#xff0c;我们的手机肯定安装有微信QQ&#xff0c;不过微信QQ都是主打熟人社交&#xff0c;而下面几个软件都是陌生人社交。这些社交软件&#xff0c;总有一款你安装过。注意&#xff0c;非按排名介绍。第一款:陌陌陌陌是一款基于地理位置的开放式移动视频社交应…

通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据

下文将重点说明通过Sqoop实现Mysql与HDFS互导数据&#xff0c;Mysql与Hbase,Oracle与Hbase的互导最后给出命令。一、Mysql与HDFS互导数据环境&#xff1a; 宿主机器操作系统为Win7&#xff0c;Mysql安装在宿主机上&#xff0c;宿主机地址为192.168.66.963台虚拟机操作系统为Ubu…

Android5.0新控件

谷歌在推出Android5.0的同时推出了一些新控件&#xff0c;Android5.0中最常用的新控件有下面5种。 1. CardView&#xff08;卡片视图&#xff09; CardView顾名思义是卡片视图&#xff0c;它继承FrameLayout。它是一个带圆角的背景和阴影FrameLayout。CardView被包装为一种布局…

python中要使用导入全部的是什么符号-在python格式字符串中使用标点符号

这是因为您可以使用格式迷你语言来访问对象的属性.例如,我经常在自己的自定义类工作中使用它.假设我为每台需要处理的计算机定义了一个类. class Computer(object): def __init__(self,IP): self.IP IP 而现在我想对整个计算机做一些事情 list_comps [Computer(name,"19…

oracle 读懂10046视频,10046、10053、实操记录

10046是一个Oracle的内部事件(event)&#xff0c;通过设置这个事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的trace信息&#xff0c;即帮助我们解析一条/多条SQL、PL/SQL语句的运行状态&#xff0c;这些状态包括&#xff1a;Parse/Fetch/Execute三个阶段中…

linux重定向文件被修改后,Linux服务器修改.htaccess文件实现301重定向

出于 SEO、PR 值传递、网址转换的目的&#xff0c;在网站初建和网站迁移时我们都需要使用 301 重定向&#xff0c;通常包括域名对域名&#xff0c;目录对目录和一个独立网址对另一个独立网址的重定向。在虚拟主机上作 301 重定向&#xff0c;最常用的方法有2种&#xff1a;第一…

Druid使用起步—在javaWeb项目中配置监控

原文章&#xff1a;http://my.oschina.net/u/568779/blog/152813 ---------------------------------------------------- druid wiki 当我们在javaWEB项目中使用到druid来作为我们的连接池的时候&#xff0c;一定不会忘了添加监控功能。下面我们就来看一下&#xff0c;在一个…

[译] 想帮助用户做决定?你的APP可以这样设计!

原文地址&#xff1a;Design your app for decision-making原文作者&#xff1a;Jeni译文出自&#xff1a;掘金翻译计划本文永久链接&#xff1a;github.com/xitu/gold-m…译者&#xff1a;PTHFLY校对者&#xff1a;ryouaki想帮助用户做决定&#xff1f;你的APP可以这样设计&am…

ip地址管理系统_门禁监控管理系统项目总结

门禁监控管理系统项目总结1、门禁管理设备(IFACE802) 16台 ,都有独立的网线到控制的房间。IP地址从 192.168.1.101--192.168.1.116。(地下一层 新家的最后一间是在附近的一个房间接的网线。一层的大门 有1台控制器和IFACE802 部署了2根网线)2、门禁控制的IP地址 192.168.1.1173…

linux mount命令衔接,Linux mount命令详解:挂载Linux系统外的文件

Linux mount命令详解&#xff1a;挂载Linux系统外的文件《Linux挂载》一节讲到&#xff0c;所有的硬件设备必须挂载之后才能使用&#xff0c;只不过&#xff0c;有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载&#xff0c;而有些(比如 U 盘、光盘)则需要手动进行挂载。…

targetFilterLifecycle的作用

targetFilterLifecycle的作用&#xff0c;有需要的朋友可以参考下。 在web.xml中进行配置&#xff0c;对所有的URL请求进行过滤&#xff0c;就像"击鼓传花"一样&#xff0c;链式处理。 配置分为两种A和B。 A:普通配置 在web.xml中增加如下内容&#xff1a;<fi…

平板电脑可以插u盘吗_有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测

原标题&#xff1a;有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测一、前言&#xff1a;前段时间我们一帮60岁左右的退休老头、老太太到农家乐去玩&#xff0c;玩累了就开始喝茶&#xff0c;一坐下来&#xff0c;人人都把手机掏出来&#xff0c;看着他们看手机的姿势&…

[8086汇编]利用栈翻转内存数据

assume cs:codesegcodeseg segmentdw 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9hdw 9 dup(?)start:; 设置栈段mov ax, csmov ss, ax; 36 9 * 2 * 2mov sp, 36sub bx, bxmov cx, 9 s_push:mov ax, cs:[bx]push axadd bx, 2loop s_pushsub bx, bxmov cx, 9 s_pop:pop cs:[bx]add bx, …

面向多媒体 linux 版本,基于MX Linux 的 AV Linux 新版发布,此AV非彼AV

原标题&#xff1a;基于MX Linux 的 AV Linux 新版发布&#xff0c;此AV非彼AV作者&#xff1a;Linux迷链接&#xff1a;https://www.linuxmi.com/av-linux-2020-11-23-mx-linux-19-3.html经过六个多月的开发&#xff0c;面向多媒体的AV Linux发行版已发行了新版本&#xff0c;…

Spring的PropertyPlaceholderConfigurer应用

1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现&#xff0c;也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文&#xff08;配置文 件&#xff09;中的属性值放在另一个单独的标准java Properties文件中去。在XML文件…

safari浏览器_吹爆苹果自带浏览器Safari,没有比它更贴心的浏览器了!!

大家一定觉得苹果的很多自带软件很难用对不对&#xff1f;嘻嘻&#xff0c;我觉得这正是苹果的魅力所在&#xff0c;它的很多产品与我们的正常使用习惯思维之间存在着一堵看不见的墙&#xff0c;只有当你你花点时间去研究、去驾驭它&#xff0c;把那堵墙给它推倒&#xff0c;然…

正则表达式知识详解(转自晴天碧日)

一、什么是正则表达式&#xff1f; 1.定义&#xff1a; 正则表达式(regular expression)描述了一种字符串匹配的模式&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。构造正则表达式的方法和创建数学表达式的方法…

Spring tx:advice/

<tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置。默认的 <tx:advice/> 设置如下&#xff1a; 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事务是 读/写 事务超时默认是依赖于事务系统的&#xff0c;或者事务超…

drcom linux怎么运行,linux下使用drcom登录认证

下载首先感谢开发者:https://github.com/drcoms/drcom-generic这个项目基于python实现了d,p,x版drcom认证,请到上述链接查看相关信息,项目的wiki简单介绍了各版本的使用方法.首先下载上面的drcom-generic,我将其下载到了家目录~/下,完整目录:~/drcom-generic取得必要信息下面启…