1. 程式人生 > >JAVA學習:JDBC連線DB2資料庫(1)

JAVA學習:JDBC連線DB2資料庫(1)

在CSDN潛了這麼久,今天終於決定開始寫一點東西了,慵懶的腳算是邁出第一步了,希望自己堅持。

JAVA專案做了這麼長時間,資料庫的連線一直沒有仔細研究過。專案中因為這部分都是封在包裡的,自己並沒有機會去寫,甚至連看都看不到。趁著最近比較閒,自己好好的練習一下。

以下這一段藍字部分是從網上拷來的,DB2的幾種連線方式:
  DBC 驅動程式體系結構分為四種類型: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

自己寫了一小段程式碼,實現了DB2連線,和兩個簡單的DB操作:
import java.sql.*;

publicclass connectDB2 {

    
/**
     * 
@param args
     
*/

    
publicstaticvoid main(String[] args) {

        String driver 
="com.ibm.db2.jcc.DB2Driver";
        String url 
="jdbc:db2://ip:50000/mydb";
        String userName 
="db2admin";
        String passWord 
="password";
        
        Connection conn 
=null;
        Statement st 
=null;
        ResultSet rs 
=null;
        String sql 
=null;
        
try{
            Class.forName(driver).newInstance();

            conn 
= DriverManager.getConnection(url, userName, passWord);

            st 
= conn.createStatement();

            st.execute(
"set current schema myschema");

            sql 
=new String("SELECT column FROM table_name");
            rs 
= st.executeQuery(sql);
            
while(rs.next()) {
                System.out.println(rs.getString(
1));
            }


            conn.close();
        }
catch (Exception e) {
            System.out.println(
"error:"+ e.getMessage() );
            System.out.println(e.toString());
        }

    }

}


須要引入兩個包:
    db2jcc.jar
    db2jcc_license_cu.jar
前一個是驅動程式包,不用多說。後一個就是所謂的許可證 JAR 檔案,若不引則出現這樣的異常:
    com.ibm.db2.jcc.b.SqlException: No license is present.

今天時間有限,就先搞這麼一點點,明天再繼續。雖然少了一點,但每天一點點也是進步嘛。

相關推薦

JAVA學習JDBC連線DB2資料庫1

在CSDN潛了這麼久,今天終於決定開始寫一點東西了,慵懶的腳算是邁出第一步了,希望自己堅持。 JAVA專案做了這麼長時間,資料庫的連線一直沒有仔細研究過。專案中因為這部分都是封在包裡的,自己並沒有機會去寫,甚至連看都看不到。趁著最近比較閒,自己好好的練習一下。以下這一段藍字部

java本地使用JDBC連線Spark SQLHiveServer2

根據Spark官網所述,Spark SQL實現了Thrift JDBC/ODBC server: The Thrift JDBC/ODBC server implemented here corresponds to the HiveServer2 in Hive 1.

【深度學習CNN】Dropout解析1

一:引言   因為在機器學習的一些模型中,如果模型的引數太多,而訓練樣本又太少的話,這樣訓練出來的模型很容易產生過擬合現象。在訓練bp網路時經常遇到的一個問題,過擬合指的是模型在訓練資料上損失函式比較小,預測準確率較高(如果通過畫圖來表示的話,就是擬合曲線比較尖,不平滑

JAVA通過JDBC操作MySQL資料庫PreparedStatement介面操作資料庫

JAVA通過JDBC操作MySQL資料庫(三):PreparedStatement介面操作資料庫 Statement介面的問題 PreparedStatement介面操作資料庫 Statement介面的問題 在文章JAVA通過JDBC操作

Javajdbc連線mysql資料庫

安裝eclipse和mysql的步驟這裡不贅述了。 1.一定要下jar包 要想實現連線資料庫,要先下載mysql-connector-java-5.1.47(或者其他版本)的jar包。低版本的jar包不會出現時差問題的異常。 建議在下載介面點右邊的"Looking for previous GA ver

jdbc連線mysql資料庫或oracle驗證通過,並操作資料庫

1.連線資料庫其實很簡單,直接粘程式碼,首先我們先複製mysql的jar包 2.再建立資料庫連線資訊檔案,寫入檔案,DRIVER可以照抄,URL是本地的資料庫資訊,如果是伺服器的資料庫可以將localhsot改成伺服器Ip,使用者名稱和密碼是資料庫的。 3.建立一個db類,第一個

javawebJDBC連線MYSQL資料庫詳解,使用JDBC資料庫進行CRUD操作以及DAO模式的介紹

  JDBC簡介: JDBC全稱為:Java DataBase Connectivity(java資料庫連線)。 SUN公司為了簡化、統一對資料庫的操作,定義了一套Java操作資料庫的規範,稱之為JDBC。 組成JDBC的2個包: 連結:https://pan

Java程式通過JDBC連線遠端資料庫MySQL

程式碼如下: import java.sql.*; public class jdbc { @SuppressWarnings("unused") public static void main

eclipse新建java工程利用JDBC連線MYSQL資料庫

java利用JDBC連線資料庫首先需要載入與註冊驅動,這裡我用的是Class.forName()方法註冊驅動,還有一種是將驅動程式新增到 PS:在註冊驅動之前需要確保工程裡有相應的驅動,所以現在工程下

Java 資料庫java工程通過JDBC連線資料庫

(在原博文上有改動) 下面請一字一句地看,一遍就設定成功,比你設定幾十遍失敗,費時會少得多。 首先,在連線資料庫之前必須保證SQL Server 2012是採用SQL Server身份驗證方式而不是windows身份驗證方式。如果在安裝時選用了後者,則重新設定如下:

學習C#連線MySQL資料庫

C#連線mySQL資料庫用MySqlConnection類,需要下載MySql.Data.dll檔案之後在專案裡引用 要想遠端連線需要對mysql設定,允許其他人遠端訪問: 這裡學到的方法是修改MySQL授權表: 在本機先使用root使用者登入mysql:   win+

java中使用jdbc連線SQLite3資料庫

sqlite驅動jar包: <dependency>             <groupId>org.xerial</groupId>             <artifactId>sqlite-jdbc</arti

java 學習筆記2 面向對象

awr ges abs nal mage 有效 面向對象 ima col 類和對象 類是某一批對象的抽象,可以把類理解成某種概念。對象是一個具體存在的實體。類和對象是面向對象的核心。 類定義的是多個實例的特征,類不是具體存在,實例才是具體存在。 定義類(class)的語法:

java基礎知識學習--------之枚舉類型1

blog 枚舉類型 csdn 相同 名稱 枚舉類 java string pac 枚舉類型的概念: 1 /** 2 * 目的:枚舉類型 3 * @author chenyanlong 4 * 日期:2017/10/22 5 * 網址:http://blo

javajava學習之路-01-Linux基礎

x文件 字母 at命令 超過 用戶登錄 創建刪除 軟連接 nbsp tail linux學習方法: 你的程序要在服務器(linux)上執行,服務器沒有桌面系統,學習linux就是學習命令。 一、Linux介紹 1、芬蘭大學生,名字叫Linux,因為個人興趣,編寫了一個類Un

javaEE學習筆記maven下載和安裝1

本文只作學習筆記,僅代表個人觀點,若有雷同,純屬巧合; 工具:編輯器Eclipse,Tomcat7.0(下載地址:https://tomcat.apache.org/) JDK1.8版本 第一步:官網下載地址: http://maven.apache.org/download.cgi

重走Java基礎面向物件-抽象類abstract

抽象類,什麼是抽象類? 1. 抽象類的產生 當編寫一個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的功能具體實現方式,那麼這些方法都有具體的方法體。 但是有的時候,某個父類只是知道子類應該包含怎麼樣的方法,但是無法準確知道子類如何實現這些方法。比如一個圖形類應該有一

C++學習list容器詳解

list容器詳解       首先說說STL         STL就是Standard Template Library,標準模板庫。這可能是一個歷史上最令人興奮的工具的最無聊

springboot連線mysql資料庫2

第一步找到檢視——工具視窗——database或者在視窗的右側找到,,具體看我畫紅線部分然後點選。 第二步點選“+”然後找到Database——Mysql 點選 第三步按紅線部分分別寫入機器名,資料庫名,賬戶名,密碼,然後點選測試,出現右側Successful,說明連線成功,點選右

LoRa學習通道佔用檢測原理CAD冷練車APP 抓娃娃APP 找上海捌躍網路科技有限公司

LoRa學習:通道檢測原理(CAD) 隨著擴頻調製技術的應用,確定通道是否佔用十分關鍵,需要確定是否有其他訊號已經使用該通道,而該訊號可能比接收機的噪聲訊號還要低。。。這種情況使用RSSI是行不通的,因此 需要使用通道活動檢測器(CAD)來檢測其他LoRa訊號。