javadb2
A. java程序讀取db2資料庫中所有數據表以及表數據,創建到mysql資料庫中
因為我沒有轉載DB2 所以沒有辦法幫你寫出具體的sql語句,也不能測試.我oracle 為例吧.
1.不管java 連接那個資料庫都是一樣的.
Class.forName(dir);
String url = "";//資料庫名,用戶名和密碼
Connection conn = DriverManager.getConnection(url);
Statement stat = conn.createStatement();
// 執行你想要執行的sql語句.下面是查詢,修改和刪除有點不一樣.
ResultSet rs = stat.executeQuery(sql);
你可以通過select table_name from user_tables; 這個sql語句查詢才出資料庫裡面所有的表.
再通過 select * from ALL_TAB_COLS A where lower(A.Table_Name) = '表名' 查詢出某一個表的相關信息.這樣是有點繁瑣,不過不失為一種解決方法.
2 .讀取數據就更容易了.
直接執行select 就可以了.
3. 幫剛剛讀出來的表結構組裝成建表語句. create 一下就可以了.
4.關於數據類型我也不是很清楚,你可以在網上查一查db2有哪些數據類型.然後在建表的時候做一下兒轉換就可以了.
5.你說的也就是把剛剛查詢出來的數據插入到資料庫中.insert 就可以了.
其實java 操作資料庫很簡單的.不同於c.查詢出來後,做適當的組裝處理.就可以得到你想要的結果.
希望對你有幫助.
B. JAVA訪問資料庫的4種方法是哪些
(1)JDBC-ODBC橋加ODBC驅動程序
JavaSoft橋產品利用ODBC驅動程序提供JDBC訪問。注意,必須將ODBC二進制代碼(許多情況下還包括資料庫客戶機代碼)載入到使用該驅動程序的每個客戶機上。因此,這種類型的驅動程序最適合於企業網(這種網路上客戶機的安裝不是主要問題),或者是用Java編寫的三層結構的應用程序伺服器代碼。
(2)本地API
這種類型的驅動程序把客戶機API上的JDBC調用轉換為Oracle、Sybase、Informix、DB2或其它DBMS的調用。注意,象橋驅動程序一樣,這種類型的驅動程序要求將某些二進制代碼載入到每台客戶機上。
(3)JDBC網路純Java驅動程序
這種驅動程序將JDBC轉換為與DBMS無關的網路協議,之後這種協議又被某個伺服器轉換為一種DBMS協議。這種網路伺服器中間件能夠將它的純Java客戶機連接到多種不同的資料庫上。所用的具體協議取決於提供者。通常,這是最為靈活的JDBC驅動程序。有可能所有這種解決方案的提供者都提供適合於Intranet用的產品。為了使這些產品也支持Internet訪問,它們必須處理Web所提出的安全性、通過防火牆的訪問等方面的額外要求。幾家提供者正將JDBC驅動程序加到他們現有的資料庫中間件產品中。
(4)本地協議純Java驅動程序
這種類型的驅動程序將JDBC調用直接轉換為DBMS所使用的網路協議。這將允許從客戶機機器上直接調用DBMS伺服器,是Intranet訪問的一個很實用的解決方法。由於許多這樣的協議都是專用的,因此資料庫提供者自己將是主要來源,有幾家提供者已在著手做這件事了。
據專家預計第(3)、(4)類驅動程序將成為從JDBC訪問資料庫的首方法。第(1)、(2)類驅動程序在直接的純Java驅動程序還沒有上市前會作為過渡方案來使用。對第(1)、(2)類驅動程序可能會有一些變種,這些變種要求有連接器,但通常這些是更加不可取的解決方案。第(3)、(4)類驅動程序提供了Java的所有優點,包括自動安裝(例如,通過使用JDBC驅動程序的appletapplet來下載該驅動程序)。
C. java連接DB2資料庫出錯 Could not open JDBC Connection for transaction
連接有問題,看配置、看伺服器連接連通、看驅動是否正確
D. JAVA JDBC連接DB2資料庫問題
JAVA連接DB2
/**了解基礎情況**/ 對於Java程序員而言,DB2 提供了兩種應用程序編程介面(API):JDBC 和 SQLJ。
JDBC:
JDBC 驅動程序分為舊的/CLI 驅動程序<db2java.zip>和新的通用 JDBC 驅動程序(Universal JDBC Driver)<db2jcc.jar>。
JDBC 是一個與供應商無關的動態 SQL 介面,該介面通過標准化的 Java 方法向您的應用程序提供數據訪問。
JDBC 類似於 DB2 CLI,因為您無須預編譯應用程序代碼,也無須將軟體包綁定到 DB2 資料庫。
作為一個與供應商無關的標准,JDBC 應用程序提供了更多的可移植性—這是當今異構業務基礎設施所必需的優點。
在執行 JDBC 應用程序期間,驅動程序將針對當前連接的 DB2 資料庫伺服器驗證 SQL 語句。
訪問期間的任何問題都會作為 Java 異常與相應的 SQLSTATE 和 SQLCODE 一起報告給應用程序。
SQLJ:
SQLJ 是一個用於從 Java 應用程序進行數據訪問的標准開發模型。
SQLJ API 是在 SQL 1999 規范中定義的。
新的通用 JDBC 驅動程序在一個實現中同時為 JDBC 和 SQLJ API 提供了支持。
JDBC 和 SQLJ 可以在同一個應用程序中互操作。
SQLJ 提供了獨特的使用靜態 SQL 語句進行開發以及在 DB2 包級別控制訪問的能力。
/**JDBC連接方式分析**/
JDBC 驅動程序體系結構分為四種類型:Type1,Type2,Type3,Type4。
Type1:
驅動程序基於 JDBC-ODBC 橋。
因此 ODBC 驅動程序可以與此類 JDBC 驅動程序(由 Sun 提供)結合起來使用。
IBM 不支持 Type 1 驅動程序,因此它不是推薦的環境。
Type2:
驅動程序依靠特定於操作系統的庫(共享庫)來與 RDBMS 通信。
應用程序將裝入這種 JDBC 驅動程序,而驅動程序將使用共享庫來與 DB2 伺服器通信。
DB2 UDB for Linux, UNIX和 WindowsV8.1 提供了兩種不同的 Type 2 驅動程序:
<1> 舊的/CLI JDBC 驅動程序在文件db2java.zip中提供。
其實現包名稱為COM.ibm.db2.jdbc.app.DB2Driver。
該驅動程序目前已被用於進行 J2EE 認證。
其別名「app 驅動程序」源自於一種觀念及其包名稱,
這種觀念就是:此驅動程序將通過遠程資料庫的本地 DB2 UDB 客戶機執行本地連接。
<2> 通用 JDBC 驅動程序在文件db2jcc.jar中提供。
其實現包名稱為com.ibm.db2.jcc.DB2Driver。
此驅動程序是 DB2 UDB for Linux, UNIX 和 Windows V8.1 中的新功能。
在最初的實現(V8.1)中,此驅動程序用於使用 Type 4 驅動程序體系結構與 DB2 伺服器進行直接的 Java 連接。
在 DB2 V8.1.2 中,您可以在 Type 2 體系結構中使用此驅動程序。
在 Type 2 體系結構中使用此驅動程序的一個主要原因是為了本地應用程序性能和分布式事務支持。
通用 JDBC Type 2 驅動程序分別使用com.ibm.db2.jcc.DB2XADataSource和com.ibm.db2.jcc.DB2ConnectionPoolDataSource來支持分布式事務和連接池。 註:在將來的版本中不會對舊的/CLI Type 2 驅動程序進行增強。
Type3:
驅動程序是一種純 Java 實現,它必須與 DB2 JDBC Applet 伺服器(DB2 JDBC Applet Server)通信才能訪問 DB2 數據。
此類驅動程序旨在使 Java applet 能訪問 DB2 數據源。
常被稱作「網路(net)驅動程序」,它是根據其包名COM.ibm.db2.jdbc.net命名的。DB2 V8.1 支持網路驅動程序,可以將其用於 JDBC 應用程序。
要求db2java.zip驅動程序總是處於與 DB2 Applet 伺服器相同的維護級別。
如果驅動程序在 applet 內使用,這就不是一個問題,因為瀏覽器會在應用程序執行期間下載相應的db2java.zip文件。
許多客戶使用 Type3 驅動程序而不是 Type2 驅動程序,以避免必需的 DB2 客戶機安裝和必需的DB2 CATALOG DATABASE命令,後者用於創建使用舊的/CLI 驅動程序進行 Type 2 連接所必需的資料庫目錄信息。
目前,WebSphere Application Server 和其它 J2EE 伺服器不支持 IBM Type 3 驅動程序,因為該驅動程序不支持分布式事務(JTA)。
將來的版本不會對 Type 3 驅動程序進行增強。
鼓勵使用通用 JDBC Type 4 驅動程序來替代 Type 3 驅動程序。
Type4:
驅動程序是僅用於 Java 的 JDBC 驅動程序,它直接連接到資料庫伺服器。
DB2 UDB for Linux, UNIX 和 Windows V8.1 引入了稱為「通用 JDBC 驅動程序(Universal JDBC driver)」的 Type 4 驅動程序。
通用 JDBC 驅動程序在文件db2jcc.jar中提供。
其實現包名為com.ibm.db2.jcc.DB2Driver。
請注意,通用 Type 2 和通用 Type 4 驅動程序具有相同的實現類名稱。
有兩種方法可以區別 DB2 在內部將實例化哪個驅動程序:
使用連接特性來確定連接是否使用共享庫(Type2),或者驅動程序是否會啟動來自 Java 應用程序的直接連接(Type4)。
重要:就 DB2 UDB V8.1.2 而言,通用 JDBC 驅動程序要求 CLASSPATH 中有許可證 JAR 文件和db2jcc.jar文件。
以下是所需的許可證 JAR 文件:
Cloudscape Network Server V5.1:db2jcc_license_c.jar
DB2 UDB V8 for Linux, UNIX 和 Windows 伺服器:db2jcc_license_su.jar
DB2 UDB for iSeries and z/OS 伺服器(與 DB2 Connect 和 DB2 Enterprise Server Edition 一起提供):db2jcc_license_cisuz.jar ****************************************************************驅動程序類型:db2java.zip, db2jcc.jar
注意:假如你使用db2java.zip,且web伺服器使用Tomcat的話,請將db2java.zip改名為db2java.jar,最好將zip解壓再用jar命令打包,直接改文件類型也行(呵呵,按照jar文件嚴格意義上來講這是不符合文法的<少了描述性文件:MANIFEST.MF>,能用就行)
還有一般情況下:就是使用 db2java.zip的話需要安裝db2客戶端, 使用db2jcc.jar是通過網路直接來連接的無需安裝db2客戶端(假如用在type2上還是要裝客戶端的)type2:
使用<db2java.zip>:
jdbc.driverClassName=COM.ibm.db2.jdbc.app.DB2Driver
jdbc.url=jdbc:db2:dataBaseName
假如你的工具使用的是myeclipse且使用的是tomcat plugin的話,請將db2jdbc.dll 拷貝到 %JAVA_HOME%/bin下,否則不行地啦
<是不是其他類型的使用db2java.zip驅動也有這個問題呢,不知道,沒試過,有空試一下>
使用<db2jcc.jar>:
jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
jdbc.url=jdbc:db2:dataBaseName
type3:
驅動:db2java.zip
jdbc.driverClassName=COM.ibm.db2.jdbc.net.DB2Driver
jdbc.url=jdbc:db2://ip:6789/DBNAME
注意:要在資料庫上執行 db2jstrt 6789 (這句啟動了db2jd進程,6789是默認的伺服器偵聽jdbc2連接的埠,也可以設置成另外的任意不沖突的埠。)
type4:
驅動:db2jcc.jar
資料庫字元集必須設置為utf-8
jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
jdbc.url=jdbc:db2://ip:port/DBNAME
E. 怎麼用JAVA調用DB2的export
Java連接DB2
今天有點好奇,就一口氣在WIN7旗艦版,版本是6.1,裡面裝了DB2 V9.7這個版本(400M左右),然後就寫了一個Java 代碼來試了試,Java里連接DB2,還成功啦,拿出來和大家分享一下,期間參考了無數仁人志士的文章。
這里先說一下,DB2和JDBC驅動的問題,這個是摘來的。
解讀java連接db2的四種類型
第一種:目前IBM一直都沒有提供 TYPE 1的JDBC驅動程序.
第二種:類型2驅動:COM.ibm.db2.jdbc.app.DB2Driver, 該驅動也位於包 db2java.zip中,JDK必須能訪問db2的db2jdbc.dll等。
用法:
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
String url = "jdbc:db2:sample";
Connection con = DriverManager.getConnection(url, user, password);
TYPE 2 驅動使 Java 應用程序通過JDBC調用DB2.對 DB2 JDBC type 2 driver 的調用被轉換成 Java 本地方法.Java 使用這種驅動程序的應用程序必須運行在一個 DB2 客戶機上,JDBC 請求通過這個客戶機轉到 DB2 伺服器.在使用 DB2 JDBC 應用程序驅動程序訪問 DB2 UDB for iSeries 數據源或者 DB2 for OS/390 或 z/OS 環境中的數據源之前,必須安裝 DB2 Connect Version 8.DB2 JDBC type 2 driver 支持 JDBC 1.2 規范中描述的大部分 JDBC 和 SQLJ 函數,並且支持 JDBC 2.0 規范中描述的一些函數.
第三種:類型3驅動:COM.ibm.db2.jdbc.net.DB2Driver, 該驅動位於包 db2java.zip中.