為什么使用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?Connection,?Statement?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.pswp.cn/news/539487.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539487.shtml
英文地址,請注明出處:http://en.pswp.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取得必要信息下面啟…