JDBC學習

一、JDBC是什麼?

  • 百度百科解釋:JDBC(java database connectivity)驅動程序是對JDBC規範完整的實現,它的存在在Java程序與數據庫系統之間建立了一條通信的渠道。它是 一 種可用於執行 SQL 語句的 Java API(Application Programming Interface, 應用程序設計接口)。
  • 簡單理解:java 數據庫連接。有了它,就能夠在java代碼中操作任何數據庫。由於數據庫種類繁多,並且java程序使用廣泛,sun公司就提供了一種規範,讓其他的數據庫提供商去實現底層的訪問。
  • 剛開始每個數據庫(Oracle,Mysql,SqlServer)的訪問規則都不同,後來SUN公司想一統天下,出臺了一套規範,各個數據庫要按照這個規範去寫底層代碼,與此同時,Java程序也直接去找JDBC。

二、作用是什麼?

  • JDBC 爲數據庫應用開發人員、數據庫前臺開發人員提供了一種標準的應用程序設計接口, 使開發人員可以用純 Java 語言編寫完整的數據庫應用程序。
  • JDBC 通過調用其接口提供的方法, 提供了 Java 應用程序與各種數據庫服務器之間的連接服務,。
  • 它支持 ANSI SQL- 92 標準, 實現了從 Java 程序內調用標準的 SQL 命令對數據庫進行查詢、插入、刪除和更新等操作, 並確保數據事務的正常進行。

三、JDBC驅動程序

根據訪問數據庫的技術不同, JDBC 驅動程序相應地分爲四種類型。不同類型的驅動程序有着不一樣的特性和使用方法。

  1. JDBC-ODBC橋驅動程序(JDBC-ODBC Bridge Driver)
  • 此類驅動程序由JDBC-ODBC橋和一個ODBC驅動程序組成。
  • 工作原理:通過一段本地C代碼將JDBC調用轉化成ODBC調用。這一類型必須在本地計算機上先安裝好ODBC驅動程序,然後通過JDBC-ODBCBridge的轉換,將Java程序中使用的JDBC API訪問指令轉化成ODBC API指令,進而通過ODBC驅動程序調用本地數據庫驅動代碼完成對數據庫的訪問。
  1. 部分Java的本地JDBC API驅動程序
  • JDBC API驅動程序(Anative API partly Java technology-enabled Driver)
  • 工作原理:此類驅動程序也必須在本地計算機上先安裝好特定的驅動程序(類似ODBC),然後通過PartialJavaJDBCDriver的轉換,把Java程序中使用的JDBC API轉換成NativeAPI,進而存取數據庫。
  1. 純Java的數據庫中間件驅動程序
  • 純Java的數據庫中間件驅動程序(Pure Java Driver for Database Middleware)使用這類驅動程序時,不需要在本地計算機上安裝任何附加軟件,但是必須在安裝數據庫管理系統的服務器端加裝中間件(Middleware),這個中間件負責所有存取數據庫時必要的轉換。
  • 工作原理:驅動程序將JDBC訪問轉換成與數據庫無關的標準網絡協議(通常是HTTP或HTTPS)送出,然後再由中間件服務器將其轉換成數據庫專用的訪問指令,完成對數據庫的操作。中間件服務器能支持對多種數據庫的訪問。
  1. 純Java的JDBC驅動程序
  • 純Java的JDBC驅動程序(Direct-to-DatabasePureJavaDriver)這類驅動程序是直接面向數據庫的純Java驅動程序,即所謂的"瘦"驅動程序。
  • 工作原理:使用這類驅動程序時無需安裝任何附加的軟件(無論是本地計算機或是數據庫服務器端),所有存取數據庫的操作都直接由JDBC驅動程序來完成,此類驅動程序能將JDBC調用轉換成DBMS專用的網絡協議,能夠自動識別網絡協議下的特殊數據庫並能直接創建數據連接。

四、JDBC驅動程序的選擇

在企業內部信息系統中,選擇合適的JDBC驅動程序,使之符合數據庫程序設計的要求,是提高系統性能必須考慮的一個方面。不同的應用有不同的需要,所以要根據應用選擇合適的驅動程序。

  • JDBC-ODBC橋驅動程序(JDBC-ODBC Bridge Driver)
  • 優點:節省投資,利用了已有的ODBC驅動程序。
  • 缺點:中間有多次調用,性能受到影響,執行效率比較低,不適合對大數據量存取的應用。有損Java數據庫程序的兼容性,不具備跨平臺性,不適合基於Internet/Intranet的應用。
  • 應用:橋接驅動程序用於已經在ODBC技術上投資的情形,例如已經投資了Windows應用服務器。
  • 部分Java的本地JDBC API驅動程序
  • 優點:具有開放性,其利用多層結構,上層用Java實現,支持多數據庫,下層爲本地代碼(包括一些二進制代碼和一個輕量的Java庫),加快了執行速度,提高了數據庫訪問效率。
  • 缺點:沒有使用純Java的API,如果在本地代碼中存在缺陷,將可能使Java虛擬機完全垮掉。
  • 應用:受到限制
  • 純Java的數據庫中間件驅動程序
  • 優點:由純Java語言開發而成的,並且中間件也僅需要在服務器上安裝,不再需要客戶端的本機代碼,這類驅動程序的體積最小,效率較高,具有最大的靈活性。此類驅動採用標準的網絡協議,可以被防火牆支持,是開發Applet程序理想的選擇(其實這些驅動是爲Applet特別編寫的),是Internet應用理想的解決方案。開發者還可以利用單一的驅動程序連接到多種數據庫。
  • 缺點:需要在服務器端安裝中間件,這適當影響了驅動程序的效率。
  • 應用:基於Web的應用系統的開發。
  • 純Java的JDBC驅動程序
  • 最佳的JDBC驅動程序類型。
  • 優點:無需安裝任何附加軟件,不會增加任何額外開銷,效率最高,擁有最佳的兼容性。
  • 缺點:可能不被防火牆支持,在Internet中會存在潛在安全隱患,成爲這類驅動最大的缺陷。
  • 應用:在企業級應用軟件中,是應優先考慮的。因此,一個Servlet程序,要適應不同的操作系統,最好使用此類驅動;這種驅動也非常適合Applet程序,事實證明它能安全通過TCP/IP協議連接到數據庫。
  • 在這裏插入圖片描述
    在這裏插入圖片描述
發佈了47 篇原創文章 · 獲贊 42 · 訪問量 8733
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章