寧毅網絡工作室

          寧毅網絡工作室提供專業的網站設計維護制作服務

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            18 隨筆 :: 93 文章 :: 28 評論 :: 0 Trackbacks
            JDBC是Java的開發者??Sun的Javasoft公司制定的Java數據庫連接(Java?Data?Base?Connectivity) 技術的簡稱,是為各種常用數據庫提供無縫聯接的技術。JDBC在Web和Internet應用程序中的作用和ODBC在Windows系列平臺應用程序中的作用類似。ODBC(OpenData?Base?Connectivity),稱為開放式數據庫互聯技術,是由Microsoft公司倡導并得到業界普遍響應的一門數據庫連接技術,如果讀者有使用ODBC編程的經驗,就會發現JDBC與ODBC很類似。JDBC現在可以連接的數據庫包括:xbase、 Oracle、Sybase、Aceess以及Paradox等。?

          JDBC的工作機制

            如果用戶是從事軟件領域工作的,不可能沒有聽說過SQL(Structure?Query?Language:結構化查詢語言),它是一種標準化的關系型數據庫訪問語言。在SQL看來,數據庫就是表的集合,其中包含了行和列。SQL標準雖然也還處在不斷變革之中(任何一門標準如果已一成不變了,那只能說明這門學科已經停止發展了),但其基本內容相對穩定。JDBC定義了Java語言同SQL數據之間的程序設計接口。
            JDBC有一個非常獨特的動態連接結構,它使得系統模塊化。使用JDBC來完成對數據庫的訪問包括以下四個主要組件:Java的應用程序、JDBC驅動器管理器、驅動器和數據源。
            JavaSoft公司開發了JDBC?API,JDBC?API是一個標準統一的SQL數據存取接口。  JDBC在Internet中的作用與 ODBC在Windows系列中的作用類似。它為Java程序提供了一個統一縫地操作各種數據庫的接口,程序員編程時,可以不關心它所要操作的數據庫是哪個廠家的產品,從而提高了軟件的通用性,而且在Internet上確實無法預料你的用戶想訪問什么類型的數據庫。只要系統上安裝了正確的驅動器組, JDBC應用程序就可以訪問其相關的數據庫。
          用JDBC來實現訪問數據庫記錄可以采用下面的幾個步驟:
          1、?通過驅動器管理器獲取連接接口。
          2、?獲得Statement或它的子類。
          3、?限制Statement中的參數。
          4、?執行Statement。
          5、?查看返回的行數是否超出范圍。
          6、?關閉Statement。
          7、?處理其它的Statement
          8、?關閉連接接口。

          Java作為數據庫前臺?

            在信息時代,數據庫是用于收集和處理數據的工具,數據庫形成了許多公司基礎結構的基礎。盡管數據庫系統非常適合數據的存儲和取得,但人類需要某種前臺應有程序以查閱和使用存放的數據。
            Java對建立數據庫服務器前臺應用程序的開發人員提供了幾個好處。Java是“一旦寫成,到處運行”的語言,即Java程序不經改變即可部署到任何運行Java虛擬機的計算機結構和操作系統。對于大公司,有一個公用開發平臺好處很大,編程人員可以不再為大公司中的各個平臺分別編程。Java也很吸引第三方開發者,單個Java程序即可滿足大公司客戶的需求。
            建立公司系統中基于Java的應用程序和小程序的動力是巨大的。公司對于將結構和操作系統相關模型變成針對網絡的模型相當有興趣。Java代表著節約資源成本的長期戰略。
            對于開發人員,Java代表巨大的市場機會。大中型企業很少不用數據庫進行業務工作的,大部分公司將數據庫應用到業務的各個方面,從人事資源到前線客戶銷售。

          JDBC?API

            JDBC?API使開發者不必不斷重寫程序而可以建立數據庫前臺。盡管ANSI委員會有個標準組,但每個數據庫系統廠家的系統連接和通訊方法仍然五花八門。
            為了建立健全獨立于平臺的應用程序和基于Web的小程序,開發人員應考慮用Java開發前臺連接辦法。從外部看,第三方軟件開發者通過專用辦法,通過本地方法集成客戶機方庫或通過建立第三層和新協議來滿足這種需求。
            JavaSoft是Sun公司負責開發Java產品的業務單位,和數據庫與數據庫工具廠家一起建立獨立于DBMS的機制,使開發人員不必考慮所用的特定數據庫而編寫客戶機方應用程序。產生的JDBC?API第一版是核心JDK?2的一部分。
            JDBC向應用程序開發者提供了獨立于數據庫的統一的API。這個API提供了編寫的標準和考慮所有不同應用程序設計的標準。其奧秘是一組由驅動程序實現的Java接口。驅動程序負責標準JDBC調用向支持的數據庫所要的具體調用轉變。
            應用程序編寫一次并移植到各種驅動程序上。應用程序不變,驅動程序則各不相同。驅動程序可以用于開發多層數據庫設計的中間層,也稱中間件(middleware)。
            除了向開發者提供統一的獨立于DBMS的框架外,JDBC還提供了讓開發者保持數據庫廠家提供的特定功能的辦法。JDBC驅動程序必須支持 ANSI?AQL-2項目層,但JDBC允許開發者直接將查詢字符串傳遞到連接的驅動程序。這些字段可能是ANSI?SQL也可能不是,或者根本不是 AQL。這些字符串的使用是基礎驅動程序的事。
            JDBC不是Mincrosoft的ODBC(開放式數據庫連接)規范派生的,JDBC完全是用Java編寫的,而ODBC是個C接口。但是,JDBC和ODBC都是基于X/開放SQL命令層接口(CLI),相同的概念性基礎使API工作進展更快,使API的接受更加容易。JavaSoft提供了將JDBC變成ODBC的JDBC-ODBC橋。這個用本地方法完成的版本很小很有效。
            一般來說,JDBC?API中有兩層接口:應用程序層,開發人員用API通過SQL調用數據庫和取得結果,驅動程序層,處理與具體驅動程序版本的所有通訊。
            每個JDBC應用程序(或小程序)至少要有一個JDBC驅動程序,每個驅動程序是針對一種DBMS的。但驅動程序不必直接聯到數據庫。

          利用JDBC代替CGI

            迄今為止,通過Java訪問數據庫的唯一方法就是利用Java中的流調和訪問Common?Gateway?Interface(CGI,公用網關接口)程序。通過Java調用CGI腳本其實是執行一個訪問數據庫并返回結果的獨立程序。
            使用這種方法速度很慢,而且會在應用程序中引入更多的錯誤。這是由于利用兩種不同的開發語言開發程序,需要掌握兩種不同的技術。使用JDBC,用戶只要了解Java語言即可,而使用CGI,用戶必須同時使用Java和另一種編程語言。
            使用JDBC的另一個原因是它的速度比CGI方法更快。使用CGI方法通常要求計算機執行另一個獨立的程序。這個獨立的程序訪問數據庫,處理數據,并將結果返回給調用程序。這就需要多級處理,因而增加了等待時間和出錯概率。
            調用CGI腳本通常是通過Web服務器執行一個新的腳本,而執行JDBC的數據庫命令只需要某種將SQL命令發送給數據庫的服務器。這就大大縮短了執行 SQL語句的時間,CGI腳本必須獨立地連接數據庫,處理執行結構,而JDBC的解決方案使應用程序直接與數據庫相連,執行各種操作。

          JDBC的優點和缺點

            JDBC?API用于連接Java應用程序與各種關系數據庫。這使得人們在建立客戶/服務器應用程序時,通常把Java作為編程語言,把任何一種瀏覽器作為應用程序的友好界面,把Internet或Intranet作為網絡主干,把有關的數據庫作為數據庫后端。以下是使用JDBC的優缺點。
            優點如下:
            1.JDBC?API與ODBC十分相似,有利于用戶理解。
            2.JDBC使得編程人員從復雜的驅動器調用命令和函數中解脫出來,可以致力于應用程序中的關鍵地方。
            3.JDBC支持不同的關系數據庫,使得程序的可移植性大大加強。
            4.用戶可以使用JDBC-ODBC橋驅動器將JDBC函數調用轉換為ODBC。
            5.JDBC?API是面向對象的,可以讓用戶把常用的方法封裝為一個類,備后用。
            缺點如下:
            1.使用JDBC,訪問數據記錄的速度會受到一定程度的影響。
            2.JDBC結構中包含了不同廠家的產品,這就給更改數據源帶來了很大的麻煩。
          (轉載文章請保留出處:北天JAVA技術網(www.java114.com))
          posted on 2007-01-16 09:25 寧毅網絡工作室 閱讀(173) 評論(0)  編輯  收藏 所屬分類: Java技術備藏
          主站蜘蛛池模板: 分宜县| 曲水县| 通州区| 丹巴县| 黔江区| 平谷区| 衡阳县| 万盛区| 大城县| 金湖县| 永福县| 卓尼县| 乌兰浩特市| 阿克陶县| 兖州市| 翁源县| 广东省| 奉节县| 西昌市| 日喀则市| 景洪市| 澄迈县| 昌乐县| 财经| 江津市| 郎溪县| 通州区| 南阳市| 湘乡市| 汤原县| 景宁| 绍兴市| 巴塘县| 涞水县| 德庆县| 秦安县| 屯留县| 乳山市| 襄城县| 红安县| 四川省|