<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java – JDBC 驅動類型 > 原文: [https://howtodoinjava.com/java/jdbc/jdbc-basics-types-of-jdbc-drivers/](https://howtodoinjava.com/java/jdbc/jdbc-basics-types-of-jdbc-drivers/) [**Java 數據庫連接(JDBC)**](https://docs.oracle.com/html/A95261_01/jdgjdbc.htm)是標準應用編程接口(API)的 JavaSoft 規范,允許 Java 程序訪問數據庫管理系統。 JDBC API 由一組用 Java 編程語言編寫的接口和類組成。 使用這些標準接口和類,程序員可以編寫連接到數據庫的應用,發送以[**結構化查詢語言(SQL)**](https://en.wikipedia.org/wiki/SQL)編寫的查詢,并處理結果。 JDBC 面向關系數據庫。 因為 JDBC 是標準規范,所以使用 JDBC API 的 Java 程序可以連接到任何具有 JDBC 驅動的數據庫管理系統(DBMS)。 ## JDBC 驅動 JDBC API 定義了程序員用來連接數據庫和發送查詢的 Java 接口和類。 JDBC 驅動程序為特定的 DBMS 供應商實現這些接口和類。 Java 程序(使用 JDBC API)在實際連接到數據庫之前為特定的 DBMS 加載指定的驅動。 然后,JDBC 的`DriverManager`類將所有 JDBC API 調用發送到已加載的驅動。 ## JDBC 驅動的類型 有 **4 種不同類型的 JDBC 驅動**: 1. 類型 1:JDBC-ODBC 橋驅動 2. 類型 2:本機 API 驅動 3. 類型 3:所有 Java + 中間件翻譯驅動 4. 類型 4:純 Java 驅動 讓我們一一看一下。 ## 類型 1:JDBC-ODBC 橋驅動 ![JDBC-driver-type-1](https://img.kancloud.cn/14/c3/14c301ef54ebf79f8d1741ae4baaa1df_300x424.png) 1 類 JDBC 驅動由 Java 部分組成,該 Java 部分將 JDBC 接口**轉換為 ODBC 調用**。 ODBC 橋然后調用給定數據庫的 ODBC 驅動,即該驅動將 JDBC 方法調用轉換為 ODBC 函數調用。 該驅動依賴于平臺,因為它使用 ODBC,而 ODBC 又取決于運行 JVM 的基礎操作系統的本機庫。 另外,使用此驅動還會導致其他安裝依賴項。 例如,必須在具有驅動的計算機上安裝 ODBC,并且數據庫必須支持 ODBC 驅動。 如果可以使用純 Java 驅動的替代方案,則不建議使用此驅動。 Sun 提供了 JDBC-ODBC 橋驅動:`sun.jdbc.odbc.JdbcOdbcDriver`。 該驅動是本機代碼,而不是 Java,并且是封閉源代碼。 ## 類型 2:本機 API 驅動 ![JDBC-driver-type-2](https://img.kancloud.cn/06/75/06757e319066e43bf1165cd1b837db7b_344x441.png) 2 類 JDBC 驅動類似于 1 類 驅動,不同之處在于 **ODBC 部分被替換為本地代碼部分**。 本機代碼部分針對特定的數據庫產品,即使用數據庫產品的客戶端庫。 驅動將 JDBC 方法調用轉換為數據庫本機 API 的本機調用。 這種架構消除了對 ODBC 驅動的需要,而直接稱為數據庫供應商提供的本機客戶端庫。 數據庫供應商很快就采用了這種方法,因為它可以快速,廉價地實現,因為他們可以重用現有的基于 C/C++ 的本機庫。 ## 類型 3:全 Java + 中間件翻譯驅動 ![JDBC-driver-type-3](https://img.kancloud.cn/98/0f/980f2953437fd0b0bc1d295e9cf89ae3_341x528.png) 3 類 JDBC 驅動是一種全 Java 驅動,**將 JDBC 接口調用發送到中間服務器**。 然后,中間服務器代表 JDBC 驅動連接到數據庫。 中間層(應用服務器)將 JDBC 調用直接或間接轉換為供應商特定的數據庫協議。 3 類驅動試圖成為 100% Java 解決方案,但從未真正吸引過很多人。 3 類驅動具有 Java 客戶端組件和 Java 服務器組件,后者實際上是在與數據庫對話。 盡管從技術上講這是一個完整的 Java 解決方案,但是數據庫供應商不喜歡這種方法,因為這種方法成本高昂 – 他們將不得不重寫全部為 C/C++ 的本機客戶端庫。 此外,這并沒有提高架構效率,因為我們實際上仍然是 3 層架構,因此很容易看出為什么它從來都不是流行的選擇。 ## 類型 4:純 Java 驅動 ![JDBC-driver-type-4](https://img.kancloud.cn/c0/a8/c0a8d0bb12df9049dfa6e7710c875eeb_300x362.png) JDBC 4 類驅動,也稱為直接數據庫純 Java 驅動,是一種數據庫驅動實現,**將 JDBC 調用直接轉換為供應商特定的數據庫協議**。 它是針對特定數據庫產品實現的。 今天,大多數 JDBC 驅動都是 4 類驅動。 4 類驅動完全用 Java 編寫,因此與平臺無關。 它們安裝在客戶端的 Java 虛擬機中。 它提供了比 1 類和 2 類驅動更好的性能,因為它沒有將調用轉換為 ODBC 或數據庫 API 調用的開銷。 與 3 類驅動不同,它不需要關聯的軟件即可工作。 該架構將整個 JDBC API 實現以及用于直接與數據庫通信的所有邏輯封裝在單個驅動中。 通過在 100% java 程序包中都包含一個單獨的層和一個小的驅動,可以輕松進行部署并簡化開發過程。 例如,這種類型包括廣泛使用的 Oracle 瘦驅動。 “雖然尚未得到 JDBC 專家組的正式批準,但有關 JDBC 社區中新的 5 類驅動提案的討論很多。” 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看