使用 JDBC 連線不同版本 DB2 資料庫的相容性問題
級別: 初級
2004 年 2 月 01 日
本文通過實驗介紹了 JDBC 應用在不同版本 DB2 系統之間遷移的問題,探討彼此的相容性,並就存在的問題給出瞭解決辦法。
關係資料庫在您的電子商務應用中一定扮演著不可或缺的重要角色。DB2 是您的選擇麼?也許您的系統裡早就部署了 DB2 UDB V7.2 系列軟體;也許您正打算升級您的 DB2 系統到最新的版本;也許您剛剛部署了最新的 DB2 UDB V8.1 系列軟體,並且想更新您之前開發的應用系統。如果您正打算這麼做,那麼這篇文章的話題應該是您所感興趣的。
您的應用系統如果想和 DB2 系統打交道,我想首先需要做的一定是和 DB2 資料庫建立連線並且對資料庫進行各種操作。對於基於 JAVA 平臺的應用程式來說,JDBC(Java Database Connectivity)一定是開發人員的首選。它作為 JAVA 程式語言的必備元件,已經成為 JAVA 2 標準版(JAVA 2,Standard Edition,J2SE)規範的一部分,而 DB2 系統對 JDBC 做了很好的支援。
在您決定遷移您的應用系統的時候,可能並不想直接升級您的DB2系統到最新的版本,這個時候就可能會碰到和我開發中所碰到的相似的情形,即我們需要適應不同版本的 DB2 資料庫同時存在的應用環境,這時我們可能希望應用程式能夠順利地在不同版本的 DB2 資料庫之間遷移而無需做過多的修改。
本文就介紹了為解決這類問題所做的一系列實驗,並且根據實驗結果給開發人員提出了一些建議。
我們討論的範圍限定在使用 JDBC 連線 DB2 UDB V7.2 和 DB2 UDB V8.1 時碰到的問題。這裡實驗環境中的 JDK 版本是 1.3,可能有些開發人員已經嘗試採用 JDK1.4 了,如果開發中碰到一些令人費解的問題,請嘗試改變您的 JDK 版本再做嘗試,這往往就能解決你的問題。
通過本文,讀者可以瞭解到下面的一些知識:
1. DB2 系統對 JDBC (Java Database Connectivity)的支援
2. DB2 命令列工具 CLP(Command Line Processor)
3. DB2 命令中心(DB2 Command Center)
4. 不同版本 DB2 系統釋出的 JDBC 驅動程式彼此的相容性
我在實驗中使用的軟體系統包括:
1. IBM DB2 UDB V7.2 Enterprise Edition
2. IBM DB2 UDB V7.2 Enterprise Edition FixPack 7
3. IBM DB2 UDB V8.1 Enterprise Server Edition
4. IBM DB2 UDB V8.1 Enterprise Server Edition FixPack 4
5. IBM WSAD V5.0
6. Windows 2000 Server
|
依照 JDBC 規範,有四種類型的 JDBC 驅動程式體系結構:
- Type 1:這類驅動程式將 JDBC API 作為到另一個數據訪問 API 的對映來實現,如開放式資料庫連通性(Open Database Connectivity,ODBC)。這類驅動程式通常依賴本機庫,這限制了其可移植性。JDBC-ODBC 橋驅動程式就是 Type 1 驅動程式的最常見的例子。
- Type 2:這類驅動程式部分用 JAVA 程式語言編寫,部分用本機程式碼編寫。這些驅動程式使用特定於所連線資料來源的本機客戶端庫。同樣,由於使用本機程式碼,所以其可移植性受到限制。
- Type 3:這類驅動程式使用純 JAVA 客戶機,並使用獨立於資料庫的協議與中介軟體伺服器通訊,然後中介軟體伺服器將客戶機請求傳給資料來源。
- Type 4:這類驅動程式是純 JAVA,實現針對特定資料來源的網路協議。客戶機直接連線至資料來源。
對於DB2 UDB V7.2來說,它不支援 Type 1 和 Type 4 的驅動程式,但是提供了分別支援 Type 2 和 Type 3 的驅動程式。
示例如下:
兩種驅動程式均隨產品安裝由 db2java.zip 提供。
- COM.ibm.db2.jdbc.app.DB2Driver
這是一種 Type 2 的 JDBC 驅動程式,它通過 DB2 本地客戶機庫的幫助建立和 DB2本地資料庫或是遠端資料庫的連線(事先將遠端資料庫編目到本地)。因此,我們必須在應用系統所在的機器上同時部署 DB2 本地客戶機庫,這也許是它最大的一個不足之處。
使用格式如下:
Driver Name:COM.ibm.db2.jdbc.app.DB2Driver
URL Pattern:jdbc:db2:databasename
databasename: 需要訪問的資料庫名
- COM.ibm.db2.jdbc.net.DB2Driver
這是一種 Type 3 的 JDBC 驅動程式,它通過與一臺已經部署了 DB2 本地客戶機庫的機器通訊來建立和 DB2 遠端資料庫的連線。
使用格式如下:
Driver Name:COM.ibm.db2.jdbc.net.DB2Driver
URL Pattern:jdbc:db2:ServerIP:databasename
ServerIP: 需要訪問的資料庫所在機器IP地址
databasename: 需要訪問的資料庫名
(目標DB2系統偵聽該服務於預設埠6789,否則還需要在 URL Pattern 中指定目標埠號)
對於 DB2 UDB V8.1 來說,它仍然不支援 Type 1 的驅動程式。同時,它在 DB2 UDB V8.1的基礎上,新增加了對 Type 4 驅動程式的支援。
示例如下:
DB2 UDB V8.1 仍然支援上面所述 V7.2 支援的兩種驅動程式,隨產品安裝由 db2java.zip 提供,但具體實現上和 DB2 UDB V7.2 產品釋出的包有所不同,所以可能存在下文所要進行實驗驗證的相容性問題。
除了 COM.ibm.db2.jdbc.app.DB2Driver 之外,DB2 UDB V8.1 還提供了另外一種 Type 2 的驅動程式,隨產品安裝由 db2jcc.jar 提供。其實現包名是 com.ibm.db2.jcc.DB2Driver,在DB2 UDB V8.1 最初的實現中,此驅動程式只用於使用 Type 4 驅動程式體系結構與 DB2 伺服器進行直接的 JAVA 連線,這類驅動程式由於不需要另外部署 DB2 本地客戶機庫以及效能相對較好而收到開發人員的歡迎。自從 DB2 UDB V8.1.2(安裝了 FixPack 2)之後,開發人員還可以在 Type 2 體系結構中使用該驅動程式,以提高本地應用程式的效能。
這裡,兩種驅動程式具有相同的實現類名稱,有兩種不同的方法可以區分 DB2 系統在內部最終會例項化哪個驅動程式:
- 使用不同的 URL Pattern 來區分兩種不同的驅動程式
Type 2 Driver URL Pattern:jdbc:db2:databasename
這當中 databasename 是需要訪問的資料庫名
Type 4 Driver URL Pattern:jdbc:db2://ServerIP:50000/databasename
這當中 ServerIP 是需要訪問的資料庫所在機器IP地址,databasename 是需要訪問的資料庫名,DB2 伺服器會在預設埠 50000 上進行偵聽。
- 使用連線特性來區分資料庫連線是否會使用 DB2 本地客戶機庫,或者是使用JAVA 直接連線。
DB2 UDB V8.1 新增加支援的這種 Type 4 驅動程式,常被稱為“通用 JDBC 驅動程式”,是一種與驅動程式型別連通性或目標平臺無關的抽象 JDBC 處理器,因此常用於進行分散式和本地 DB2 UDB 訪問。因為“通用 JDBC 驅動程式”獨立於任何特定 JDBC 驅動程式型別連通性或目標平臺,所以它在一個 DB2 UDB 驅動程式例項中同時支援所有 JAVA 連通性(Type 4 驅動程式)和基於 JNI 的連通性(Type 2 驅動程式)。該驅動程式可以用於獨立 JAVA 應用程式或多層應用程式,是開發人員一個不錯的選擇。
|
上文前後介紹了很多種 DB2 系統支援的 JDBC 驅動程式,想必您的應用中已經採用了其中的某一種或幾種,而在遷移您的應用時您一定希望最好不要更改原有的程式。這個要求能辦到麼?如果您的應用中所採用的驅動程式對不同版本的 DB2 系統進行連線的相容性足夠好,這個要求就一定能辦到。那讓我們帶著這個疑問,來進行下面這個相容性實驗吧。
實驗環境:
為了完成這個實驗,我部署了兩臺機器,就分別命名為 Machine A 和 Machine B 吧。
Machine A 上部署了 DB2 UDB V7.2.7(安裝了 FixPack 7),它可能和您應用環境中的舊版本 DB2 系統很類似;Machine B 上我部署了 DB2 UDB V8.1.4(安裝了 FixPack 4,這是目前公開發布的最新的補丁),這也許和您升級後的最新 DB2 系統相仿。
相應的,在兩臺機器上,我都安裝了 DB2 命令列工具(CLP),DB2 控制中心(Control Center),DB2 命令中心(Command Center)等工具以便能夠對 DB2 系統進行配置和監控。
實驗中當需要編寫程式碼的時候,我採用的工具是 WSAD V5.0(WebSphere Studio Application Developer),這是個不錯的開發工具。
實驗目的:
我們帶著上文碰到的這個問題來做這個實驗。因此,我們分別採用上文中提及的各種 JDBC驅動程式嘗試建立與 DB2 本地資料庫和遠端資料庫的連線。如果一切順利,這還只是完成了實驗第一步。假設建立資料庫連線成功,我們會緊接著嘗試對這個資料庫進行各種操作,先是測試查詢操作,這是最常見的資料庫操作;然後會是插入,更新,刪除等 DML 操作,它們會改變資料庫中儲存的資料。如果這些都沒有問題的話,我們還需要繼續嘗試諸如新建,修改,刪除資料表等 DDL 操作。
為了增強實驗的比較效果和準確性,我們除了會編寫程式碼來進行各種測試,還會使用 DB2 命令列工具(CLP)和 DB2 命令中心(圖形化管理工具)來進行相同的操作,並且就執行結果進行比較。
明確了實驗目的,下面就來開始我們的實驗吧。
實驗過程:
A:實驗的第一步是測試 DB2 UDB 不同版本隨產品釋出的 JDBC 驅動程式對該版本自身的相容性。
這裡我先編寫程式碼完成了各項測試目的,一切順利。
然後,我使用 DB2 命令列工具(CLP)來重複這些測試。
可以通過在命令列中鍵入 db2cmd 進入 DB2 CLP,然後在提示符下鍵入 db2,就會進入DB2 CLP 的互動介面。
如下圖:
這個命令列工具可以完成圖形化工具所做的所有管理配置工作,並且可以節省很多記憶體資源。
實驗中,我們首先需要用命令連線到一個數據庫:
示例如下,在命令列提示符後鍵入
CONNECT TO SAMPLEDBUSER db2adminUSING password
該命令表示使用使用者名稱為 db2admin,密碼為 password,連線至資料庫 SAMPLEDB,緊接著會返回連線後的資料庫相關資訊。然後就可以在命令列提示符後直接鍵入各種 DDL 或 DML 語句來執行各種操作。
最後,我們還可以使用 DB2 UDB 隨產品釋出的一個圖形化管理工具――命令中心(Command Center)來驗證我們的實驗。
可以參照上圖啟動命令中心,其相關操作請參見產品文件。
B:這一步我們將測試 DB2 UDB 兩個版本中隨產品釋出的 Type 2 JDBC 驅動程式連線與其本身不同版本的 DB2 UDB 系統時的相容性。
在進行這步測試時,由於 Type 2 JDBC 驅動程式是針對本地資料庫開發的,因此我們需要先將遠端資料庫編目(catalog)到本地,再嘗試連線。下面先給出了採用 DB2 命令列工具編目遠端資料庫的例子。
遠端資料庫的相關資訊示例如下:
目標資料庫所在機器名:TESTSERVER
目標資料庫所在機器 IP 地址:10.1.1.15
目標資料庫所屬例項名:TESTINSTANCE
目標資料庫名:SAMPLEDB
目標資料庫所在機器作業系統型別:WINDOWS
- 啟動 DB2 命令列工具
- 在命令列提示符下鍵入命令:
CATALOG TCPIP NODE TESTSERVERREMOTE 10.1.1.15 SERVER 50000REMOTE_INSTANCE TESTINSTANCEOSTYPE WINDOWS
此命令將 TESTSERVER 這臺機器以及其中指定的資料庫例項編目到本地 - 在命令列提示符下鍵入命令:
CATALOG DATABASE SAMPLEDBAT NODE TESTSERVER
此命令將樣本資料庫 SAMPLEDB 編目到本地 - 在命令列提示符下鍵入命令:
COMMIT 此命令將上面基本的修改提交給 DB2 系統使之生效。 - 在命令列提示符下鍵入命令:LIST DB DIRECTORY
通過這個命令你可以檢視所有本地的資料庫以及編目到本地的遠端資料庫的資訊,以驗證編目是否成功。
編目遠端資料庫之後,我們就可以將其看作是本地資料庫對其進行各種操作。(如果想進一步瞭解這些命令的更多內容,可以參考 DB2 聯機幫助)
這部分的測試結果比較有趣,在實驗結果中會詳細描述。
C:完成了上一步之後,我們已經有了不少收穫。在這一步中,我們測試了 DB2 UDB 兩個版本中隨產品釋出的 Type 3 JDBC 驅動程式連線與其本身不同版本的 DB2 UDB 系統時的相容性。
在這步當中,我們直接採用 COM.ibm.db2.jdbc.net.DB2Driver 這種網路 JDBC 驅動程式來嘗試連線遠端資料庫,均以失敗告終。這無論是編寫程式碼測試,還是 DB2 命令列工具,或者是 DB2 命令中心,都是令人沮喪的結果,因而這種方式不推薦大家使用。
D:最後這步也許是大家所最關心的,就是 DB2 UDB V8.1 新增支援的 Type 4 JDBC 驅動程式連線 DB2 UDB V7.2 時的相容性(同時也支援Type 2 體系結構訪問)。
這裡我們將 DB2 UDB V7.2 作為遠端資料庫,採用 Type 4 JDBC 驅動程式直接進行連線,同樣以失敗告終。我們轉而先將其編目到本地,採用該驅動程式的 Type 2 方式進行訪問,其現象與用隨 DB2 UDB V8.1 產品釋出的 COM.ibm.db2.jdbc.app.DB2Driver 進行測試的結果類似。
這似乎讓我們對這種新增支援的 JDBC 驅動程式失去了信心,不過不要著急。下文中會給出一種解決方法,能夠使得這種驅動程式順利的實現對 DB2 UDB V7.2 資料庫的連線和各種操作。
附件中給出了測試程式碼的框架,請有興趣的讀者自行更改各種 JDBC 驅動程式的包名和 URL 模式以完成各種實驗組合。
實驗結果:
A:對於這一類實驗,我們對實驗結果還是很有信心的,最後的實驗結果也驗證了我們事先的預想。
對於DB2 UDB V7.2
DB2 UDB V7.2本地資料庫 | DB2 UDB V7.2遠端資料庫 | |
COM.ibm.db2.jdbc.app.DB2Driver | 成功 | 成功 |
COM.ibm.db2.jdbc.net.DB2Driver | 成功 | 成功 |
對於DB2 UDB V8.1
DB2 UDB V8.1 本地資料庫 | DB2 UDB V8.1 遠端資料庫 | |
COM.ibm.db2.jdbc.app.DB2Driver | 成功 | 成功 |
COM.ibm.db2.jdbc.app.DB2Driver | 成功 | 成功 |
com.ibm.db2.jcc.DB2Driver(Type 2) | 成功 | 成功 |
com.ibm.db2.jcc.DB2Driver(Type 4) | 成功 | 成功 |
這步測試中,編寫程式碼,DB2 命令列工具,DB2 命令中心測試結果一致。看來隨產品釋出的 JDBC 驅動程式對本產品的支援相當不錯。
B:這類實驗的結果差別還是比較大的,也比較有趣。
DB2 UDB V7.2 遠端資料庫
(編目成本地資料庫) |
DB2 UDB V8.1 遠端資料庫
(編目成本地資料庫) |
|
COM.ibm.db2.jdbc.app.DB2Driver(隨 DB2 UDB V7.2 產品釋出) | 無意義 | 成功 |
COM.ibm.db2.jdbc.app.DB2Driver(隨 DB2 UDB V8.1 產品釋出) | 連線成功,其它操作失敗(CLP 除外) | 無意義 |
這步實驗需要分兩種情況來分析:
1. 本地端是 DB2 UDB V7.2 系統,遠端是 DB2 UDB V8.1 系統,被編目至本地。
- 先用 DB2 命令列工具建立連線,進行各項資料庫操作,都沒有問題。
- 再用 DB2 命令中心重複上面操作,也沒有問題。最後編寫程式碼重複上面操作,同樣一切正常。
這個結果讓我們非常滿意。
2. 本地端是 DB2 UDB V8.1 系統,遠端是 DB2 UDB V7.2 系統,被編目至本地。
- 先用 DB2 命令列工具建立連線,進行各項資料庫操作,一切正常。
- 再用 DB2 命令中心重複上面操作,資料庫連線正常,但繼續做資料庫操作時,會報錯:SQL0805N 找不到程式包 "NULLID.SYSSH200"。 SQLSTATE=51002,無法繼續。
- 最後,編寫程式碼進行測試,資料庫連線一切正常,能夠獲得 Connection 物件引用,但是一旦進行各種資料庫操作,會報和上面同樣的錯誤。
這個錯誤將和下面實驗 D 碰到的錯誤類似,下文會給出統一的解決方案。
C:這類實驗之前我們猜測成功的可能性不大,最後的結果也驗證了我們的猜測。
DB2 UDB V7.2 遠端資料庫(未編目成本地資料庫) | DB2 UDB V8.1 遠端資料庫(未編目成本地資料庫) | |
COM.ibm.db2.jdbc.net.DB2Driver(DB2 UDB V7.2產品釋出) | 與A重複 | 連線失敗 |
COM.ibm.db2.jdbc.net.DB2Driver(DB2 UDB V8.1產品釋出) | 連線失敗 | 與A重複 |
經過這步測試,可以認為直接用 COM.ibm.db2.jdbc.net.DB2Driver 連線不同版本的遠端資料庫是不合適的。
D:開發人員一定對 DB2 UDB V8.1 新增支援的這兩種 JDBC 驅動程式期望值很高,因此這步實驗的結果大家會比較關心。
DB2 UDB V7.2 遠端資料庫(編目成本地資料庫) | DB2 UDB V7.2 遠端資料庫(未編目成本地資料庫) | |
com.ibm.db2.jcc.DB2Driver(Type 2) | 連線成功,其它操作失敗(CLP 除外) | 無意義 |
com.ibm.db2.jcc.DB2Driver(Type 4) | 無意義 | 連線失敗 |
通過這步實驗,這種最新支援的 JDBC 驅動程式在相容低版本上與原有驅動類似。看到這個結果我們有點失望。
其實,這個問題的關鍵在於一些標準 JCC JDBC 程式包沒有和目標資料庫進行繫結,可以手工通過執行下面命令來完成這項工作。
示例如下:
db2jdbcbind -url jdbc:db2://ServerIP:50000/SAMPLEDB -user db2admin -password password
使用該命令實現繫結相關程式包之後,我又重複了部分實驗 B 和實驗 D,實驗結果如下:
DB2 UDB V7.2 遠端資料庫(編目成本地資料庫) | DB2 UDB V8.1 遠端資料庫(編目成本地資料庫) | |
COM.ibm.db2.jdbc.app.DB2Driver(DB2 UDB V8.1產品釋出) | 成功 | 成功 |
DB2 UDB V7.2 遠端資料庫(編目成本地資料庫) | DB2 UDB V7.2 遠端資料庫(未編目成本地資料庫) | |
com.ibm.db2.jcc.DB2Driver(Type 2) | 成功 | 無意義 |
com.ibm.db2.jcc.DB2Driver(Type 4) | 無意義 | 成功 |
這同時解決了實驗 B 和實驗 D 中都碰到的問題,讓我們鬆了一口氣。
實驗結論:
通過上面的實驗,我們就可以得出這樣一些建議。它適用於當您需要在不同版本的DB2系統之間遷移您的資料庫應用的時候。
- 我們可以基於舊版本的 DB2 系統(如 DB2 UDB V7.2),然後將目標系統(如 DB2 UDB V8.1)編目至本地,使用 COM.ibm.db2.jdbc.app.DB2Driver 進行資料庫連線和操作。
- 我們也可以基於新版本的 DB2 系統(如 DB2 UDB V8.1),然後將目標系統(如 DB2 UDB V7.2)編目至本地,先手工將相關程式包繫結至目標資料庫系統,再使用 COM.ibm.db2.jdbc.app.DB2Driver 或是 com.ibm.db2.jcc.DB2Driver 進行資料庫連線和操作。
實驗的結果讓我們較為滿意,我們有了不只一種選擇來遷移我們的應用。
注:由於時間和環境的限制,實驗不可能覆蓋所有的 JDBC 特性,而只限於較為常見的資料庫操作。因此,可能在一些特殊情形下上面的實驗結果並不成立,歡迎作進一步的討論和補充。
|
本文的作者在開發中碰到了 JDBC 資料庫應用在不同版本 DB2 系統之間遷移的問題。帶著這個問題,他進行了一系列實驗,測試了 DB2 UDB V7.2 與 DB2 UDB V8.1 中 JDBC 驅動程式彼此的相容性,並就存在的問題給出瞭解決辦法。最後給有類似困惑的開發人員提出了一些建議。
1. DB2 命令列處理器(CLP)常用命令參考
2. DB2 UDB for Linux, Unix 和 Windows 中的 JAVA 開發概述
3. DB2 線上開發指南
4. DB2 產品官方主頁
5.DB2 開發者園地
作者陳雋偉,是IBM中國軟體實驗室上海全球化認證實驗室的一員,你可以通過 [email protected]和他聯絡。 |
相關推薦
使用 JDBC 連線不同版本 DB2 資料庫的相容性問題
級別: 初級 2004 年 2 月 01 日 本文通過實驗介紹了 JDBC 應用在不同版本 DB2 系統之間遷移的問題,探討彼此的相容性,並就存在的問題給出瞭解決辦法。 簡介 關係資料庫在您的電子商務應用中一定扮演著不可或缺的重要角色。DB2 是您的選擇麼?也許您的系統裡
Java 通過JDBC連線並操作Mysql資料庫
使用Java連線資料庫需要使用JDBC驅動。JDBC(Java Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。以下是使用方
java無法連線高版本mysql資料庫問題
轉自連結:https://zhidao.baidu.com/question/2056521203295428667.html Java使用mysql-jdbc連線MySQL出現如下警告: Establishing SSL connection without serve
jdbc連線cdh版本hive
在使用IDE連線cdh版本hive時,由於jdbc版本問題,會出現如下幾個錯誤:1.jdbc版本不是cdh的,必須使用cdh版本的;2.使用阿里雲映象倉庫,從maven倉庫中下載相應版本,下載失敗,沒有;3.從cdh內建的lib庫取出相應的jar包,匯出到IDE,成功,步驟如
db2客戶端因埠問題連線不上db2資料庫解決辦法
1. 使用db2例項使用者在伺服器執行,檢視db2的tcpip服務名稱: linux:db2 get dbm cfg | grep -i "SVCENAME" windows:db2 get dbm cfg | find "SVCENAME" 執行結果: D:\Progra
如何利用JDBC連線並操作Oracle資料庫
之前學習.NET的時候,曾經利用ODBC進行連線資料庫,而在Java中通常採用JDBC連線資料庫,這裡以oracle資料庫為例簡單的總結一下利用JDBC如何連線並操作資料庫。 1、連線 public
JAVA學習:JDBC連線DB2資料庫(1)
在CSDN潛了這麼久,今天終於決定開始寫一點東西了,慵懶的腳算是邁出第一步了,希望自己堅持。 JAVA專案做了這麼長時間,資料庫的連線一直沒有仔細研究過。專案中因為這部分都是封在包裡的,自己並沒有機會去寫,甚至連看都看不到。趁著最近比較閒,自己好好的練習一下。以下這一段藍字部
動態載入jdbc驅動(可測試jdbc不同版本相容性)
緣由 接到一個新任務,需要測試應用對mysql jdbc不同版本驅動的相容性。這裡希望能夠以程式碼的形式,手動載入不同版本的mysql jdbc驅動,比如有下列的驅動版本,我要一個一個進行測試: mysql-connector-java-5.1.6.jar
Mybatis連線DB2資料庫
前一陣子做了一個與DB2相關操作的專案,專案架構是SpringBoot+Mybatis+DB2。之前一直使用Mysql未接觸DB2,搭建配置過程中也是在網上一點點找資料,遇到了好多坑,現專案基本穩定執行,總結一下MyBatis配置連線DB2
連線mysql資料庫連線報錯,是pom檔案配置mysql連線驅動版本號問題
前一段時間安裝了最新的mysql 8.0.11,然後啟動一個專案的時候報錯資訊如下: [ERROR] 2018-08-14 17:28:21,246 method:com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:6
JAVA JDBC 連線資料庫程式碼
package ora; import java.sql.Connection; import java.sql.DriverManager; public class springhead { //驅動程式就是之前在classpath中配置的JDBC的驅動程式的JAR 包中 publ
jsp資料庫(一、使用jdbc連線資料庫)
步驟: 一、載入驅動程式 Class.forName("sun.jdbc.odbc.jdbcOdbcDriver"); 二、建立連線物件 Connection conn = DriverManager.getConnection("主機名","使用者名稱","密碼");
Jemter使用JDBC連線資料庫
趁著上一篇文章用的jdbc的驅動jar包還在,索性就再用Jemter連線一下資料庫 環境:mysql (任意版本);jemter(任意版本);jdbc驅動jar包; 1.建立資料庫,建表,插入資料,以備jemter使用; mysql>create database te
使用Eclipse的JDBC連線Mysql資料庫
因為好久沒有弄資料庫和程式碼,今天心血來潮,弄個簡單的連線恢復一下記憶。 環境:MySQL任意版本;eclipse任意版本;JDBC驅動jar包; 1.MySQL安裝完畢後,建立資料庫,建立表; Enter password:******* //出現welcome to th
JAVA WEB JDBC連線資料庫
桂 林 理 工 大 學 實 驗 報 告 班級 軟體16-1班 學號 3162052051116 姓名 張識虔 同組實驗者 &
jdbc連線Mysql資料庫實現crud
一.首先下載jdbc連線包 https://www.mysql.com/products/connector/ 二:然後解壓出來就可以看見下面兩個壓縮檔案 開啟eclise,假設已經建立好一個java專案 右鍵單擊專案名然後選擇如下圖所示步驟操作就好: 專案名
使用jdbc連線資料庫時的一些錯誤
如果使用了mysql8.0以上的版本 異常資訊: 你如果用的包是以前的包的話,會提示使用caching_sha2_password 或者是 Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class i
JDBC連線資料庫工具類以及測試
1. 資料庫連線工具程式碼 package com.zzm.db; import java.sql.*; /** * Created by ming on 2017/6/13. */ public class DBUtil { //載入驅動 private f
資料庫連線池之DB2
最近專案開發遇到一個問題,當資料量過大時會導致系統崩潰,經過排查,發現是每一次操作資料庫都建立一次資料連線,當資料量太大,就會導致程式無法負載從而宕機。 而後進行程式碼改造,改用資料庫連線池。目前使用資料庫連線池有兩種方式,使用配置檔案以及不使用配置檔案! 第一種: 不使
記一次jdbc連線oracle資料庫佔用CPU過高的問題排查
背景: 公司有一個通訊系統,主要是通訊資料到客戶端程式所指定的資料庫,目前支援sqlserver、mysql和oracle三種類型的資料庫,此篇主要記錄一次oracle資料庫佔用CPU飆高的問題。 &nbs