隨筆 - 100  文章 - 50  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          //驅動的問題
              Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
          Connection con = DriverManager.getConnection("jdbc:db2://133.64.37.1:50000/CHURNDB", "test", "test");


          DB2有幾種jdbc驅動,jdbc-url分別如下:
          jdbc:db2:localhost:db2test                              COM.ibm.db2.jdbc.net.DB2Driver         type3  db2java.zip
          jdbc:db2:db2test                                                COM.ibm.db2.jdbc.app.DB2Driver        type2  db2java.zip
          jdbc:db2://localhost:50000/db2test               com.ibm.db2.jcc.DB2Driver                     type4 db2jcc.jar

          另外用type4時 數據庫必須將codeset設置成utf-8
          否則查詢時會拋出com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!異常

          今天犯了錯誤,弄混了寫法,希望沒人再犯同樣的錯。
          我的版本是 udb8.1。



          ----------------------------------------------------------------------

          /**了解基礎情況**/
          對于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
          posted on 2010-11-22 13:30 fly 閱讀(935) 評論(0)  編輯  收藏 所屬分類: 數據庫學習
          主站蜘蛛池模板: 寿光市| 肥城市| 禄丰县| 高邑县| 靖边县| 应城市| 固原市| 赫章县| 林芝县| 南乐县| 衡东县| 泗洪县| 汪清县| 班玛县| 十堰市| 图们市| 台东县| 安吉县| 富川| 平南县| 和林格尔县| 社会| 监利县| 客服| 洞头县| 班玛县| 依安县| 毕节市| 康马县| 焉耆| 金坛市| 班玛县| 咸宁市| 汉寿县| 盐津县| 绥宁县| 田阳县| 息烽县| 宜州市| 新沂市| 汽车|