https://blog.csdn.net/kanglix1an/article/details/36893005 css
什麼是JDBC?html
Java語言訪問數據庫的一種規範,是一套API。JDBC(Java Database Connectivity)API。即Java數據庫編程接口。是一組標準的Java語言中的接口和類。使用這些接口和類,Javaclient程序可以訪問各類不一樣類型的數據庫。比方創建數據庫鏈接、運行SQL語句進行數據的存取操做。java
JDBC規範採用接口和實現分離的思想設計了Java數據庫編程的框架。 爲了使client程序獨立於特定的數據庫驅動程序,JDBC規範建議開發人員使用基於接口的編程方式。sql
什麼是JDBC驅動程序?數據庫
是各個數據庫廠家依據JDBC的規範製做的JDBC實現類。編程
JDBC驅動程序的四種類型:oracle
1.第一種類型的驅動程序的實現是經過將JDBC的調用全部託付給其餘編程接口來實現的,比方ODBC。這樣的類型的驅動程序需要安裝本地代碼庫,即依賴於本地的程序。因此便攜性較差。比方JDBC-ODBC橋驅動程序框架
2. 另一種類型的驅動程序的實現是部分基於Java語言的。即該驅動程序一部分是用Java語言編寫,其餘部分託付本地的數據庫的client代碼來實現。工具
同類型1的驅動同樣,該類型的驅動程序也依賴本地的程序,因此便攜性較差post
3. 第三種類型的驅動程序的實現是全部基於JAVA語言的。該類型的驅動程序一般由某個中間件server提供,這樣client程序可以使用數據庫無關的協議和中間件server進行通訊,中間件server再將client的JDBC調用轉發給數據庫進行處理
4.第四種類型的驅動程序的實現是全部基於JAVA語言的。該類型的驅動程序中包括了特定數據庫的訪問協議。使得client可以直接和數據庫進行通訊
JAVA使用JDBC訪問數據庫的步驟(與ODBC使用基本類似):
1.獲得數據庫驅動程序
2.建立數據庫鏈接
3. 運行SQL語句
4.獲得結果集
5.對結果集作相應的處理(增,刪,改,查)
6.關閉資源:這裏釋放的是DB中的資源
PS:Oracle鏈接字符串的書寫格式:「oracle:jdbc:thin:@ip:1521: 數據庫名」,」數據庫username」,」數據庫password」
簡單的樣例:
public void TestJdbc() { String sql = "select * from test_user"; Connection con = null; Statement st = null; ResultSet rs = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521:name", "root", "123456"); st = con.createStatement(); rs = st.executeQuery(sql); while (rs.next()) { System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch (Exception e) { } try { st.close(); } catch (Exception e) { } try { rs.close(); } catch (Exception e) { } } }
與ODBC比較:
JDBC和ODBC事實上都是用來鏈接數據庫的驅動程序。ODBC中文名字叫作開放數據庫互聯,是微軟技術人員開發的開放服務結構中有關數據庫的一個組成部分,它創建一組相關的規範。並提供了一組對數據庫訪問的標準應用程序編程接口。
簡單的說,ODBC就是應用程序與數據庫系統進行交互的工具。全部的數據庫操做由相應的數據庫系統的ODBC驅動程序來完畢。從而可以實現以同一的方式來處理全部的數據庫。
JDBC與ODBC類似,也是一個應用程序與數據庫進行通訊的中介。僅僅是他們的開發商不一樣而已。JDBC是由Sun公司向關係型數據庫系統廠商提供JDBC的規格與需求;而後各大廠商遵循標準規格設計出符合本身數據庫產品的JDBC驅動程序。
JDBC的總體結構類似於ODBC,有四個組件:應用程序、驅動程序管理器、驅動程序和數據源,工做原理亦大致同於ODBC.
差異:
1.JDBC要比ODBCeasy理解。
2.JDBC數據庫驅動程序是面向對象的。
3.JDBC的移植性要比ODBC要好
總之JDBC與ODBC都是數據庫的驅動程序,它們的本質是一樣的,都是爲了處理SQL語句而設計的。而且JDBC在設計的時候。其也是在ODBC的基礎上進行設計的,並保留了ODBC數據庫驅動程序的部分功能。或者說,咱們可以把JDBC看做是ODBC的還有一個高級版本號也何嘗不可。
JDBC主要在操做上、友好性上作了必定的改進。