数据库编程——intro to JDBC
【0】README
1) 本文文字描述 轉(zhuǎn)自 core java volume 2 , 旨在理解 數(shù)據(jù)庫(kù)編程——JDBC 的基礎(chǔ)知識(shí) ;
2)JDBC起源: 96年, Sun公司發(fā)布了 第一版的java 數(shù)據(jù)庫(kù)連接(JDBC)API, 允許編程人員可以通過這個(gè)API 接口連接到 數(shù)據(jù)庫(kù),并使用結(jié)構(gòu)化查詢語言(即SQL)完成對(duì)數(shù)據(jù)庫(kù)的查找與更新;
【1】JDBC 的設(shè)計(jì)(JDBC——Java DataBase Connection)
1)所有數(shù)據(jù)庫(kù)供應(yīng)商和工具開發(fā)商認(rèn)為,如果java 能夠?yàn)?SQL 訪問提供一套純 java API , 同時(shí)提供一個(gè)驅(qū)動(dòng)管理器, 以允許第三方驅(qū)動(dòng)程序可以連接到特定的數(shù)據(jù)庫(kù),那他將會(huì)非常有用;(干貨——引入了驅(qū)動(dòng)管理器)
- 1.1)這樣, 數(shù)據(jù)庫(kù)供應(yīng)商就可以提供自己的驅(qū)動(dòng)程序,并插入到驅(qū)動(dòng)管理器中。
- 1.2)另外還需要一套簡(jiǎn)單機(jī)制,以使得第三方驅(qū)動(dòng)程序可以向驅(qū)動(dòng)管理器注冊(cè);
2) ODBC(Open DataBase Connection-開放數(shù)據(jù)庫(kù)互連):這種接口組織方式遵循了 微軟公司非常成功的 ODBC模式;ODBC 為C語言訪問數(shù)據(jù)庫(kù)提供了一套編程接口。 (干貨——ODBC定義)
3)JDBC 和ODBC都基于同一個(gè)思想: 根據(jù)API編寫的程序都可以與驅(qū)動(dòng)管理器進(jìn)行通信, 而驅(qū)動(dòng)管理器則通過 驅(qū)動(dòng)程序與實(shí)際的數(shù)據(jù)庫(kù)進(jìn)行通信; (干貨——JDBC 和ODBC都基于同一個(gè)思想)
【2】 JDBC 驅(qū)動(dòng)程序類型(JDBC driver program type)
1)JDBC規(guī)范將驅(qū)動(dòng)程序歸結(jié)為以下幾類:
- 1.1)第1類驅(qū)動(dòng)程序: 將 JDBC 翻譯為 ODBC, 然后使用一個(gè) ODBC 驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)進(jìn)行通信;如 JDBC/ODBC 橋, 但強(qiáng)烈不建議使用 JDBC/ODBC 橋; (干貨——強(qiáng)烈不建議使用 JDBC/ODBC 橋)
- 1.2)第2類驅(qū)動(dòng)程序:是由部分 java 程序和部分本地代碼組成的, 用于與數(shù)據(jù)庫(kù)的客戶端API 進(jìn)行通信; 在使用驅(qū)動(dòng)程序前,客戶端不僅要安裝java 類庫(kù), 還需要安裝 一些與平臺(tái)相關(guān)的代碼;
- 1.3)第3類驅(qū)動(dòng)程序:是純java 客戶端類庫(kù), 它使用一種與具體數(shù)據(jù)庫(kù)無關(guān)的協(xié)議將數(shù)據(jù)庫(kù)請(qǐng)求發(fā)送給 server 構(gòu)件, 然后該構(gòu)件再將數(shù)據(jù)庫(kù)請(qǐng)求翻譯成數(shù)據(jù)庫(kù)相關(guān)的協(xié)議, 這簡(jiǎn)化了部署, 因?yàn)槠脚_(tái)相關(guān)的代碼只 位于server 端了;
- 1.4)第4類驅(qū)動(dòng)程序:是純java 類庫(kù), 它將JDBC 請(qǐng)求直接翻譯成數(shù)據(jù)庫(kù)相關(guān)的協(xié)議。
Attention)大部分?jǐn)?shù)據(jù)庫(kù)供應(yīng)商都為它們的產(chǎn)品提供了 第3類 或 第4類 驅(qū)動(dòng)程序;
Conclusion) JDBC 實(shí)現(xiàn)了以下目標(biāo): (干貨——JDBC的目標(biāo))
- C1)通過使用標(biāo)準(zhǔn)的SQL語句, 甚至是專門的 SQL擴(kuò)展, 程序員就可以使用 java 語言開發(fā)訪問數(shù)據(jù)庫(kù)的應(yīng)用, 同時(shí)還依舊遵守 java 語言的相關(guān)約定;
- C2) 數(shù)據(jù)庫(kù)供應(yīng)商 和 數(shù)據(jù)庫(kù)工具開發(fā)商可以提供底層的驅(qū)動(dòng)程序, 因此,它們可以優(yōu)化各自數(shù)據(jù)庫(kù)產(chǎn)品的驅(qū)動(dòng)程序;
【2】JDBC的典型用法
1)三層應(yīng)用模式 (干貨——三層應(yīng)用模式)
- 1.1)在三層應(yīng)用模式中, 客戶端不直接調(diào)用數(shù)據(jù)庫(kù),而是調(diào)用服務(wù)器上的中間件層,最后由中間件層完成數(shù)據(jù)庫(kù)查詢操作;
- 1.2)這三層應(yīng)用模式的優(yōu)點(diǎn)如下(virtue):
- V1) 它將可視化表示(位于客戶端) 從業(yè)務(wù)邏輯(位于中間件)和原始數(shù)據(jù)(位于數(shù)據(jù)庫(kù))中分離出來;
- V2)因此,我們可以從不同的客戶端,如 java 應(yīng)用, web 表單,來訪問相同的數(shù)據(jù)和相同業(yè)務(wù)規(guī)則;
2)客戶端和中間層之間的通信通過 HTTP, 或諸如遠(yuǎn)程方法調(diào)用 RMI 這樣的機(jī)制來完成。 (干貨——引入 RMI技術(shù))
3)JDBC 負(fù)責(zé)在中間層和后臺(tái)數(shù)據(jù)庫(kù)之間進(jìn)行通信, 如圖4-2所示。
- 3.1)這模型有多種變體: 尤其是 java 企業(yè)版(java EE)為應(yīng)用服務(wù)器定義了一種結(jié)構(gòu),用于管理稱為 企業(yè)級(jí) Java Bean (EJB)的代碼模塊, 并且提供了許多重要的服務(wù); (干貨——涉及到了EJB)
- 3.2)JDBC 扮演了重要的角色: 即完成復(fù)雜的數(shù)據(jù)庫(kù)查詢;
總結(jié)
以上是生活随笔為你收集整理的数据库编程——intro to JDBC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花开花落云卷云舒什么意思 花开花落云卷云
- 下一篇: 数据库编程——JDBC 配置