<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java系列之JDBC和ODBC之間的區別與聯系 ## JDBC簡介 JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,它是Java十三個規范之一。可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序,同時,JDBC也是個商標名。 ## ODBC簡介 開放數據庫互連(Open Database Connectivity,ODBC)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分,它建立了一組規范,并提供了一組對數據庫訪問的標準API(應用程序編程接口)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。開放數據庫互連(ODBC)是Microsoft提出的數據庫訪問接口標準。開放數據庫互連定義了訪問數據庫API的一個規范,這些API獨立于不同廠商的DBMS,也獨立于具體的編程語言(但是Microsoft的ODBC文檔是用C語言描述的,許多實際的ODBC驅動程序也是用C語言寫的。)ODBC規范后來被X/OPEN和ISO/IEC采納,作為SQL標準的一部分,具體內容可以參看《ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI)》等相關的標準文件。 ## 兩者之間的聯系 JDBC和ODBC都是用來連接數據庫的啟動程序,JDBC和ODBC由于具有數據庫獨立性甚至平臺無關性,因而對Internet上異構數據庫的訪問提供了很好的支持。 兩者之間的區別 ### 1.JDBC比ODBC更容易理解 從事編程工作的朋友都知道Java比C語言更好學,主要是因為Java語言是面向對象的更接近人的思維認識,更容易被人接受。而C語言就較為抽象,跟人的認識思維相差較大,其開發出來的產品也具有類似特點。在ODBC中一個的簡單的查詢,也需求分為好幾塊內容;而在ODBC驅動程序內部再去整合,做一些復雜的操作。這不僅降低了數據庫啟動程序的性能,而且也給程序開發者開發實際運用程序帶來了確定的負面效果。而JDBC數據庫啟動程序在設計的時間就包含了大部份基本數據操作功能,為此在編寫一些常規的數據庫操作語句時,如查詢、更新等等,其所需求的源代碼比 ODBC要少的多。故從這方面來說,JDBC數據庫啟動程序要比ODBC簡易理解。 ### 2.JDBC數據庫驅動程序是面向對象的 JDBC完全遵循Java語言的優良特性。通常情況下,只要有Java功能需設計基礎的用戶都能在最短時間內了解JDBC驅動程序的架構,較量簡易上手,能輕而易舉的開發出強悍的數據庫實際運用程序。而ODBC的話,由于其內部功能復雜,源代碼編寫要求高。為此即使是一個的C語言的高手,仍然需求花費不少的時間去了解那個數據庫啟動程序;在編寫源代碼的時間,還離不開有關的參考書本。 ### 3.JDBC的移植性要比ODBC要好。 通常情況下,安裝完ODBC驅動程序之后,還需求經過確定的配置才能夠應用。而不相同的配置在不相同數據庫服務器之間不能夠通用。也那是說,裝一次需求配置一次。但是JDBC數據庫驅動程序則不相同。假如采用JDBC數據庫驅動程序的話,則只需要選取適當的 JDBC數據庫驅動程序,就不需要額外的配置。在安裝過程中,JDBC數據庫驅動程序會自己完成有關的配置。為此JDBC的移植性要比ODBC要好。 ## 從ODBC向JDBC過度 也許數據庫編程以前采用的是ODBC驅動程序,而假如數據庫編程目前需要采用JDBC驅動程序,那么能否出現順利過渡呢?答案是肯定的。在JDBC驅動程序中有一類叫作JDBC-ODBC橋接啟動程序。這種類別的JDBC數據庫驅動程序其底層是經過ODBC驅動程序來連接數據庫的。假如原先的實際運用程序是基于ODBC數據庫驅動程序的,或者數據庫沒有幫助對應的JDBC驅動程序,則數據庫編程能利用JDBC-ODBC橋接驅動程序來實現。也那是說,橋接驅動程序能利用現有的ODBC驅動程序來存取聯系型數據庫。為此者不僅能保留先前的開發架構(經過ODBC來存取數據),還能立即應用Java作為新的開發環境,從而出現ODBC數據庫驅動程序到JDBC的順利轉型。 不過在采用這種橋接驅動程序的時間,需求留意幾個難點。一是那個橋接驅動程序仍然需要用到ODBC數據庫驅動程序。由于橋接驅動程序直接聯系的對象是ODBC驅動程序,然后再經過ODBC驅動程序去訪問數據庫。為此在客戶端必需先安裝并配置好ODBC驅動程序。假如采用的是三層式的開發框架,也需求安裝ODBC驅動程序。其次,在這種模式下,實際運用程序先調用JDBC,然后再經過JDBC調用ODBC,最后再跟數據庫通信。顯然其中間多了幾個環節。由于其中間環節較量多,但數據訪問出現難點的時候,就不太好查難點。這就好像一道水管,假如中間的接口多了的話,則除了漏水的幾率就較量高。假如真的除了漏水的話,則查詢漏水點的時間也會較量困難。為此筆者以為,采用橋接類別的JDBC驅動程序只是權宜之計。在適當的時間,數據庫開發還是需要調整原先的開發架構,全部都轉到JDBC驅動程序上來。橋接程序只是為數據庫開發爭取確定的時間。雖然那個轉型過程中的陣痛是較痛的,但確是不可避免的。長痛不如短痛,筆者意見數據庫開發還是及早停止過渡為好。并在估計的情況下,把以前的開發架構也停止調整,以采用真正意義上的JDBC驅動程序。 JDBC雖然在一定程度上比ODBC操作簡單,容易理解。但是世間萬物存在即有道理,并不是說JDBC好就所有的情況下都能使用JDBC,兩者之間沒有好壞之分,只是在特定的情況下能夠選取合適的實現方式即可。參考文章[http://blog.sina.com.cn/s/blog_4cf8aad30100lx47.html](http://http//blog.sina.com.cn/s/blog_4cf8aad30100lx47.html)(貌似博主是翻譯過來的,好多字詞用得不太合適,理解起來有些困難,本人結合自己的認識做了替換)個人的一點點認識和整理,有不足之處請大家批評指正。
                  <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>

                              哎呀哎呀视频在线观看