隨筆 - 100  文章 - 50  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

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


          DB2有幾種jdbc驅(qū)動(dòng),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時(shí) 數(shù)據(jù)庫必須將codeset設(shè)置成utf-8
          否則查詢時(shí)會(huì)拋出com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!異常

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



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

          /**了解基礎(chǔ)情況**/
          對(duì)于Java程序員而言,DB2 提供了兩種應(yīng)用程序編程接口(API):JDBC 和 SQLJ。

          JDBC:
            JDBC 驅(qū)動(dòng)程序分為舊的/CLI 驅(qū)動(dòng)程序<db2java.zip>和新的通用 JDBC 驅(qū)動(dòng)程序(Universal JDBC Driver)<db2jcc.jar>。
            JDBC 是一個(gè)與供應(yīng)商無關(guān)的動(dòng)態(tài) SQL 接口,該接口通過標(biāo)準(zhǔn)化的 Java 方法向您的應(yīng)用程序提供數(shù)據(jù)訪問。
            JDBC 類似于 DB2 CLI,因?yàn)槟鸁o須預(yù)編譯應(yīng)用程序代碼,也無須將軟件包綁定到 DB2 數(shù)據(jù)庫。
            作為一個(gè)與供應(yīng)商無關(guān)的標(biāo)準(zhǔn),JDBC 應(yīng)用程序提供了更多的可移植性—這是當(dāng)今異構(gòu)業(yè)務(wù)基礎(chǔ)設(shè)施所必需的優(yōu)點(diǎn)。
            在執(zhí)行 JDBC 應(yīng)用程序期間,驅(qū)動(dòng)程序?qū)⑨槍?duì)當(dāng)前連接的 DB2 數(shù)據(jù)庫服務(wù)器驗(yàn)證 SQL 語句。
            訪問期間的任何問題都會(huì)作為 Java 異常與相應(yīng)的 SQLSTATE 和 SQLCODE 一起報(bào)告給應(yīng)用程序。
          SQLJ:
            SQLJ 是一個(gè)用于從 Java 應(yīng)用程序進(jìn)行數(shù)據(jù)訪問的標(biāo)準(zhǔn)開發(fā)模型。
            SQLJ API 是在 SQL 1999 規(guī)范中定義的。
           
          新的通用 JDBC 驅(qū)動(dòng)程序在一個(gè)實(shí)現(xiàn)中同時(shí)為 JDBC 和 SQLJ API 提供了支持。
          JDBC 和 SQLJ 可以在同一個(gè)應(yīng)用程序中互操作。
          SQLJ 提供了獨(dú)特的使用靜態(tài) SQL 語句進(jìn)行開發(fā)以及在 DB2 包級(jí)別控制訪問的能力。

          /**JDBC連接方式分析**/
          JDBC 驅(qū)動(dòng)程序體系結(jié)構(gòu)分為四種類型:Type1,Type2,Type3,Type4。

          Type1:
            驅(qū)動(dòng)程序基于 JDBC-ODBC 橋。
            因此 ODBC 驅(qū)動(dòng)程序可以與此類 JDBC 驅(qū)動(dòng)程序(由 Sun 提供)結(jié)合起來使用。
            IBM 不支持 Type 1 驅(qū)動(dòng)程序,因此它不是推薦的環(huán)境。


          Type2:
             驅(qū)動(dòng)程序依靠特定于操作系統(tǒng)的庫(共享庫)來與 RDBMS 通信。
             應(yīng)用程序?qū)⒀b入這種 JDBC 驅(qū)動(dòng)程序,而驅(qū)動(dòng)程序?qū)⑹褂霉蚕韼靵砼c DB2 服務(wù)器通信。
             DB2 UDB for Linux, UNIX和 WindowsV8.1 提供了兩種不同的 Type 2 驅(qū)動(dòng)程序:
             <1> 舊的/CLI JDBC 驅(qū)動(dòng)程序在文件db2java.zip中提供。
               其實(shí)現(xiàn)包名稱為COM.ibm.db2.jdbc.app.DB2Driver。
               該驅(qū)動(dòng)程序目前已被用于進(jìn)行 J2EE 認(rèn)證。
               其別名“app 驅(qū)動(dòng)程序”源自于一種觀念及其包名稱,
               這種觀念就是:此驅(qū)動(dòng)程序?qū)⑼ㄟ^遠(yuǎn)程數(shù)據(jù)庫的本地 DB2 UDB 客戶機(jī)執(zhí)行本地連接。
             <2> 通用 JDBC 驅(qū)動(dòng)程序在文件db2jcc.jar中提供。
               其實(shí)現(xiàn)包名稱為com.ibm.db2.jcc.DB2Driver。
               此驅(qū)動(dòng)程序是 DB2 UDB for Linux, UNIX 和 Windows V8.1 中的新功能。
               在最初的實(shí)現(xiàn)(V8.1)中,此驅(qū)動(dòng)程序用于使用 Type 4 驅(qū)動(dòng)程序體系結(jié)構(gòu)與 DB2 服務(wù)器進(jìn)行直接的 Java 連接。
               在 DB2 V8.1.2 中,您可以在 Type 2 體系結(jié)構(gòu)中使用此驅(qū)動(dòng)程序。
               在 Type 2 體系結(jié)構(gòu)中使用此驅(qū)動(dòng)程序的一個(gè)主要原因是為了本地應(yīng)用程序性能和分布式事務(wù)支持。
               通用 JDBC Type 2 驅(qū)動(dòng)程序分別使用com.ibm.db2.jcc.DB2XADataSource和com.ibm.db2.jcc.DB2ConnectionPoolDataSource來支持分布式事務(wù)和連接池。

            注:在將來的版本中不會(huì)對(duì)舊的/CLI Type 2 驅(qū)動(dòng)程序進(jìn)行增強(qiáng)。


          Type3:
             驅(qū)動(dòng)程序是一種純 Java 實(shí)現(xiàn),它必須與 DB2 JDBC Applet 服務(wù)器(DB2 JDBC Applet Server)通信才能訪問 DB2 數(shù)據(jù)。
             此類驅(qū)動(dòng)程序旨在使 Java applet 能訪問 DB2 數(shù)據(jù)源。
             常被稱作“網(wǎng)絡(luò)(net)驅(qū)動(dòng)程序”,它是根據(jù)其包名COM.ibm.db2.jdbc.net命名的。DB2 V8.1 支持網(wǎng)絡(luò)驅(qū)動(dòng)程序,可以將其用于 JDBC 應(yīng)用程序。
             要求db2java.zip驅(qū)動(dòng)程序總是處于與 DB2 Applet 服務(wù)器相同的維護(hù)級(jí)別。
             如果驅(qū)動(dòng)程序在 applet 內(nèi)使用,這就不是一個(gè)問題,因?yàn)闉g覽器會(huì)在應(yīng)用程序執(zhí)行期間下載相應(yīng)的db2java.zip文件。
             許多客戶使用 Type3 驅(qū)動(dòng)程序而不是 Type2 驅(qū)動(dòng)程序,以避免必需的 DB2 客戶機(jī)安裝和必需的DB2 CATALOG DATABASE命令,后者用于創(chuàng)建使用舊的/CLI 驅(qū)動(dòng)程序進(jìn)行 Type 2 連接所必需的數(shù)據(jù)庫目錄信息。
             目前,WebSphere Application Server 和其它 J2EE 服務(wù)器不支持 IBM Type 3 驅(qū)動(dòng)程序,因?yàn)樵擈?qū)動(dòng)程序不支持分布式事務(wù)(JTA)。
             將來的版本不會(huì)對(duì) Type 3 驅(qū)動(dòng)程序進(jìn)行增強(qiáng)。

             鼓勵(lì)使用通用 JDBC Type 4 驅(qū)動(dòng)程序來替代 Type 3 驅(qū)動(dòng)程序。


          Type4:
            驅(qū)動(dòng)程序是僅用于 Java 的 JDBC 驅(qū)動(dòng)程序,它直接連接到數(shù)據(jù)庫服務(wù)器。
            DB2 UDB for Linux, UNIX 和 Windows V8.1 引入了稱為“通用 JDBC 驅(qū)動(dòng)程序(Universal JDBC driver)”的 Type 4 驅(qū)動(dòng)程序。
            通用 JDBC 驅(qū)動(dòng)程序在文件db2jcc.jar中提供。
            其實(shí)現(xiàn)包名為com.ibm.db2.jcc.DB2Driver。
            請(qǐng)注意,通用 Type 2 和通用 Type 4 驅(qū)動(dòng)程序具有相同的實(shí)現(xiàn)類名稱。
            有兩種方法可以區(qū)別 DB2 在內(nèi)部將實(shí)例化哪個(gè)驅(qū)動(dòng)程序:
            使用連接特性來確定連接是否使用共享庫(Type2),或者驅(qū)動(dòng)程序是否會(huì)啟動(dòng)來自 Java 應(yīng)用程序的直接連接(Type4)。


          重要:就 DB2 UDB V8.1.2 而言,通用 JDBC 驅(qū)動(dòng)程序要求 CLASSPATH 中有許可證 JAR 文件和db2jcc.jar文件。
          以下是所需的許可證 JAR 文件:
            Cloudscape Network Server V5.1:db2jcc_license_c.jar
            DB2 UDB V8 for Linux, UNIX 和 Windows 服務(wù)器:db2jcc_license_su.jar
            DB2 UDB for iSeries and z/OS 服務(wù)器(與 DB2 Connect 和 DB2 Enterprise Server Edition 一起提供):db2jcc_license_cisuz.jar



          驅(qū)動(dòng)程序類型:db2java.zip, db2jcc.jar
          注意:假如你使用db2java.zip,且web服務(wù)器使用Tomcat的話,請(qǐng)將db2java.zip改名為db2java.jar,最好將zip解壓再用jar命令打包,直接改文件類型也行(呵呵,按照jar文件嚴(yán)格意義上來講這是不符合文法的<少了描述性文件:MANIFEST.MF>,能用就行)
             還有一般情況下:就是使用 db2java.zip的話需要安裝db2客戶端, 使用db2jcc.jar是通過網(wǎng)絡(luò)直接來連接的無需安裝db2客戶端(假如用在type2上還是要裝客戶端的)

          type2:
          使用<db2java.zip>:
            jdbc.driverClassName=COM.ibm.db2.jdbc.app.DB2Driver
              jdbc.url=jdbc:db2:dataBaseName
             

             假如你的工具使用的是myeclipse且使用的是tomcat plugin的話,請(qǐng)將db2jdbc.dll 拷貝到 %JAVA_HOME%/bin下,否則不行地啦
             <是不是其他類型的使用db2java.zip驅(qū)動(dòng)也有這個(gè)問題呢,不知道,沒試過,有空試一下>
            
            使用<db2jcc.jar>:
             jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
             jdbc.url=jdbc:db2:dataBaseName
           
          type3:
          驅(qū)動(dòng):db2java.zip
          jdbc.driverClassName=COM.ibm.db2.jdbc.net.DB2Driver
            jdbc.url=jdbc:db2://ip:6789/DBNAME
            注意:要在數(shù)據(jù)庫上執(zhí)行 db2jstrt 6789 (這句啟動(dòng)了db2jd進(jìn)程,6789是默認(rèn)的服務(wù)器偵聽jdbc2連接的端口,也可以設(shè)置成另外的任意不沖突的端口。)
           
          type4:
          驅(qū)動(dòng):db2jcc.jar
          數(shù)據(jù)庫字符集必須設(shè)置為utf-8
            jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
            jdbc.url=jdbc:db2://ip:port/DBNAME
          posted on 2010-11-22 13:30 fly 閱讀(940) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫學(xué)習(xí)
          主站蜘蛛池模板: 南木林县| 武隆县| 思茅市| 偏关县| 腾冲县| 古交市| 厦门市| 郑州市| 盐亭县| 康乐县| 台南县| 温州市| 江西省| 越西县| 荥经县| 遵义市| 富顺县| 仁化县| 永定县| 渝北区| 彰化市| 彭州市| 焦作市| 筠连县| 桦南县| 襄垣县| 乌恰县| 荆州市| 新营市| 双牌县| 呼和浩特市| 鲁山县| 类乌齐县| 驻马店市| 乌海市| 永济市| 杭锦后旗| 昆山市| 平度市| 城口县| 佛山市|