資料庫訪問技術之JDBC

來源:互聯網
上載者:User

    在瞭解JDBC之前呢,我們可以先對ODBC做一個回顧,以便於更好的理解JDBC。看名字也知道這兩個關係不一般,他們實現了同樣的功能,為應用程式串連和操作資料庫提供支援。所以,我們先從ODBC開始。
ODBCODBC(Open Database Connectivity)是開放資料庫互連的簡稱,是一種使用SQL的應用程式介面。它是一系列的規範和對資料庫訪問的API。那麼API+SQL就可以執行對資料庫的操作。它是不依賴於DBMS的,即通過ODBC可以以相同的方式串連大部分資料庫。它包括了應用程式介面、磁碟機管理器、資料庫磁碟機、資料來源。下面我們通過一副圖來瞭解ODBC各個部分之間的關係:

JDBC    之前說過了JDBC和ODBC實際上的功能是一致的,只不過實現不太一樣。首先ODBC是基於C++語言的,那麼與Java的物件導向思想不太相符,通訊比較困難。因此,JDBC就出項了,即JDBC是基於JAVA語言的資料庫訪問API介面。然後其他內容就和ODBC基本一致了。只要你瞭解了ODBC,那麼在概念上基本就理解了JDBC。那麼你需要做的就是對新面孔出項的介面再瞭解一遍就好了,並且這些介面的功能和ODBC是一致的,只是說在實現上有細微的差別。下面也看看JDBC的結構圖:
    串連方式    由上面的結構圖可以看出來,JDBC提供了多種不同的串連方式。這個做個大概的瞭解吧,因為這主要是資料庫廠商關心的事,我們知道就好了,有些也確實不是很明白。
     1、JDBC-ODBC串連橋:這種方式是一位ODBC為基礎的,上面說了java應用程式和ODBC之間的通訊是有點麻煩的。但是ODBC作為一種資料庫訪問的標準應用程式是很廣的。因此JDBC通過映射ODBC的功能調用就保證了原來使用ODBC的資料庫也可以很方便的訪問的。
     2、本地API驅動:即把JDBC調用轉換為對資料庫介面的用戶端二進位程式碼程式庫的調用。但是這個介面庫依賴於產商,因為這裡我們調用的不是資料庫廠商提供的JDBC的介面實現。
     3、純Java本地協議:即把JDBC調用映射為DBMS的網路監聽協議的功能調用,監聽程式監聽到請求後執行相關的資料庫操作。監聽程式是由廠商提供的。
   常用介面簡介  DriverManager    關於驅動程式如何註冊的,我們不需要知道。我們需要知道的是,如何調用方法去載入得到資料庫驅動程式就好了。即Class.forName()方法,調用這個方法需要傳遞一個包含該驅動程式類名的String對象作為實參。如下:   

    Class.forName("oracle.jdbc.driver.OracleDriver")
    Connection    載入了驅動程式後,與資料庫建立串連需要調用DriverManager.getConnection()方法,此方法需要資料庫URL作為參數,不同的資料庫URL的有些區別,但都符合“協議名 + Ip地址+連接埠號碼+資料庫名”的格式。資料庫使用者名稱和密碼如果有,也得加上,如下:    
        String url = "jdbc:oracle:thin:@localhost:1521:pdborcl";String username = "123";String password = "123";        Connection conn = DriverManager.getConnection(url, username, password);
    StateMent    執行靜態SQL語句,它還可以組合多個SQL語句成為一個批處理,整體提交給資料庫。我們通過Connection對象來建立Statement對象,然後用Statement的execute方法來執行SQL。另外PreparedStatement對象是繼承自Statement對象的,這裡我們用PreparedStatement為例,需要注意的是批處理只能用Statement對象來執行。 
      PreparedStatement  pstmt = conn.prepareStatement("select * from t_user where userId=?");      pstmt.setInt(1, id);      ResultSet rs = pstmt.executeQuery();
    ResultSet    執行一個SQL查詢之後的結果集,Result具有指向當前行的指標,可以用來讀取結果集中的資料。初始時指標指向第一行前面。該對象的Next()方法可以移動指標。如果Next()之後的行合法返回True,否則False。因此,迴圈時Next()方法作為判斷依據。
    到這裡JDBC的簡單介紹就結束了,JDBC在使用中充當了一個溝通者的角色。這讓我想起姚明在NBA打球的那個設計模式:適配器模式,這也就成就了Java應用程式跨平台的特性。同時,JDBC、ODBC等也是面向介面編程思想的典型體現。  對了,這裡還缺了一個OLE DB,沒有提及。下回吧……

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.