• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    數(shù)據(jù)庫建立前期關于實現(xiàn)方法選擇的建議

    2015-05-30 10:48:04趙志林
    中華建設科技 2015年7期
    關鍵詞:數(shù)據(jù)庫

    趙志林

    【摘 要】本文介紹了兩種不同的數(shù)據(jù)庫訪問方法,對JDBC與EJB的原理以及工作模式進行了比較,并且由于EJB訪問數(shù)據(jù)庫的方式相對復雜,通過一個實例對其工作模式進行了詳解。該文旨在向數(shù)據(jù)庫的開發(fā)人員提供數(shù)據(jù)庫建立前期關于實現(xiàn)方法選擇的一些建議。

    【關鍵詞】JDBC;EJB;數(shù)據(jù)庫;訪問方式

    【Abstract】This article describes two different database access method, principle and mode of JDBC and EJB are compared, and because of the relative complexity of EJB access to the database of the way through an instance of explain its mode of operation. This article is intended to provide a database to establish some preliminary recommendations for implementation to select the database developers.

    【Key words】JDBC;EJB;Database;Access mode

    1. JDBC的介紹

    1.1 JDBC簡介及結構。

    1.1.1 JDBC提供了面向?qū)ο蟮臄?shù)據(jù)庫訪問接口,針對JAVA提供了數(shù)據(jù)庫訪問的類庫。

    1.1.2 JDBC由應用程序、驅(qū)動程序管理器、驅(qū)動程序和數(shù)據(jù)源4個組件組成[1]:

    (1)應用程序:用于數(shù)據(jù)的發(fā)送以及接收。

    (2)驅(qū)動程序管理器:針對不同數(shù)據(jù)源的驅(qū)動程序進行相應處理。

    (3)驅(qū)動程序:提供數(shù)據(jù)源與對應的應用程序之間的接口。

    (4)數(shù)據(jù)源:SQL兼容數(shù)據(jù)庫。

    1.1.3 由于JDBC提供了針對面向?qū)ο蟮臄?shù)據(jù)庫訪問接口,所以應用程序只需要調(diào)用JDBC的數(shù)據(jù)庫接口,而復雜的數(shù)據(jù)庫通訊處理則是通過JDBC的驅(qū)動程序完成的。這樣大大節(jié)約了數(shù)據(jù)的處理成本。

    1.2 JDBC驅(qū)動程序常用的四種工作模式介紹。

    1.2.1 JDBC驅(qū)動程序分為4大類,分別是:

    (1)JDBC/ODBC Bridge;

    (2)Native API Partly Java;

    (3)Net Protocol All Java;

    (4)Native Protocol All Java.

    1.2.2 Type 1:JDBC/ODBC Bridge

    JDBC與ODBC的橋接,由于ODBC比JDBC出現(xiàn)的時間早.并且應用很廣泛.支持的數(shù)據(jù)庫類型較多,所以JDBC為了支持更多的數(shù)據(jù)庫類型,聯(lián)合開發(fā)了此類橋接,驅(qū)動原理是將JDBC的調(diào)用傳遞給ODBC.經(jīng)過ODBC編譯調(diào)用本地數(shù)據(jù)庫驅(qū)動對數(shù)據(jù)庫進行操作。

    1.2.3 Type 2:Native API Partly Java。

    由于大部分數(shù)據(jù)庫廠商提供的接口是由C語言編寫的。在很大程度上依賴于不同的平臺,加大了數(shù)據(jù)庫的操作的復雜度,本地的數(shù)據(jù)庫接口就是為了解決此類問題.通過驅(qū)動程序?qū)贸绦虻恼{(diào)用信息轉(zhuǎn)化為本地軟件接口的調(diào)用,在底層的數(shù)據(jù)庫操作完畢后,將處理結果返回給JDBC驅(qū)動程序,從而以標準的輸入、輸出形式降低了人工操作的復雜度。

    1.2.4 Type 3:Net Protocol All Java。

    將JDBC的信息調(diào)用轉(zhuǎn)化為網(wǎng)絡協(xié)議的形式,通過服務器來處理發(fā)送的網(wǎng)絡協(xié)議從而完成數(shù)據(jù)庫的操作。此類的驅(qū)動程序較為靈活,尤其在企業(yè)內(nèi)網(wǎng)的應用中能夠發(fā)揮較好的效果,比較熟知的websphere應用服務器就包含了此類的驅(qū)動[2],但是由于這種驅(qū)動需要在中間層配置其數(shù)據(jù)庫的驅(qū)動程序,需要在中間層傳遞數(shù)據(jù),所以它的執(zhí)行效率會受到影響。

    1.2.5 Type 4:Native Protocol All Java。

    與第三種調(diào)用方式相仿,此類模式也是通過將JDBC調(diào)用轉(zhuǎn)化為網(wǎng)絡協(xié)議,與之不同的是此類訪問方法是與數(shù)據(jù)庫建立直接的套接字連接,將數(shù)據(jù)接口直接轉(zhuǎn)化為網(wǎng)絡調(diào)用,通過網(wǎng)絡使得客戶端直接調(diào)用服務器端的數(shù)據(jù)庫。

    2. EJB的介紹

    2.1 EJB定義及分類。

    (1)EJB(Enterprise Java Beans)具有布式服務的多層次結構,提供面向?qū)ο蠹夹g并且具有跨平臺優(yōu)點的構建體系結構。

    (2)EJB提供了三種企業(yè)Bean,分別是會話Bean(Session Bean)。實體Bean(Entity Bean)和消息驅(qū)動Bean(Message Driven Bean),可以將它們視為EJB的三種重要組件。

    2.1.1 消息驅(qū)動Bean(MDB)。

    由于消息驅(qū)動與數(shù)據(jù)庫的訪問操作無關。所以這里首先介紹消息驅(qū)動。MDB是設計用來專門處理基于消息請求的組件。它能夠收發(fā)異步JMS消息,并能夠輕易地與其他EJB進行交互。所以它比較適合用于執(zhí)行周期長,無需實時反饋的情景。

    2.1.2 會話Bean。

    會話Bean用于實現(xiàn)業(yè)務邏輯,它分為有狀態(tài)和無狀態(tài)兩種模式,針對客戶端發(fā)出的調(diào)用請求,選擇通過JDBC或者實體Bean來實現(xiàn)數(shù)據(jù)的訪問。

    2.1.3 實體Bean。

    實體Bean(Entity Bean)是持久數(shù)據(jù)組件,代表存儲到外部介質(zhì)中的對象或者系統(tǒng)資源。客戶端可以通過共享來對其發(fā)起訪問。

    2.2 會話Bean與實體Bean的區(qū)別。

    (1)Session Bean在J2EE應用程序中被用來完成一些服務器端的業(yè)務操作,例如訪問數(shù)據(jù)庫、調(diào)用其他EJB組件。Entity Bean被用來代表應用系統(tǒng)中用到的數(shù)據(jù)[3]。

    (2)對于客戶機:會話Bean是一種非持久性對象,主要實現(xiàn)在服務器上運行的業(yè)務邏輯;實體Bean是一種持久性對象,代表存儲到外部介質(zhì)中的對象或者是應用程序中的系統(tǒng)資源。

    2.3 通過實例比較會話Bean與實體Bean操作的優(yōu)缺點。

    2.3.1 通常情況下數(shù)據(jù)會以表格的方式作為輸出顯示,這種情形如果使用實體Bean會導致如下問題:

    (1)引起服務端頻繁的數(shù)據(jù)庫查詢和加載操作。每次的實體Bean訪問都要進行一次find操作,造成效率的低下。

    (2)如果使用Remote接口。會引起頻繁的額外網(wǎng)絡操作。

    (3)實體Bean在處理復雜的關系型數(shù)據(jù)庫時,映射會變得非常復雜,會增加建模過程的難度。

    2.3.2 因此建議在只需對數(shù)據(jù)庫表數(shù)據(jù)進行只讀訪問時候,應該采用JDBC for Reading Pattem,即通過JDBC直接訪問數(shù)據(jù)庫。

    3. 總結

    (1)由表l所示列出了兩種調(diào)用方法的優(yōu)劣比較,其中,EJB的可擴展性的意義是:在數(shù)據(jù)庫建立初期,考慮服務是為500個終端200個并發(fā)考慮的,但是業(yè)務在一段時間后擴展了,可能達到1000個終端,400個并發(fā)。如果架構設計的不好,無法滿足使用需求,就會造成前期投資的失敗。如果使用EJB??梢詫⑵渲幸徊糠值膶嶓wBean部署到其他的服務器上,使得負載均衡,從而減小了人力以及經(jīng)濟方面的損失。

    (2)EJB中的實體Bean與JDBC直接調(diào)用數(shù)據(jù)庫各有利弊.單獨使用JDBC直接操作完全可以達到操作數(shù)據(jù)庫的目的,這一點在功能上與結合EJB進行操作沒有區(qū)別。問題的關鍵是我們對于項目的分布能力以及擴展性的要求上,如果預計應用于分布式的系統(tǒng)中,應該優(yōu)先選擇EJB;如果項目的擴展要求不高,使用JDBC也可以滿足要求.

    參考文獻

    [1] 郭廣軍,陳代武.基于JDBc的數(shù)據(jù)庫訪問技術的研究[J].南華大學學報,2005,19(2):60~62.

    [2] 歐陽宏基,葛萌.基zf:JDBC與設計模式的數(shù)據(jù)庫連接實現(xiàn)方法[J].計算機技術與發(fā)展,201 1,21(1):85~87.

    [3] 董久敏,楊旭.電力客戶關系管理系統(tǒng)的設計與實現(xiàn)[J].制造業(yè)自動化,201 1,33(4):149~151.

    [4] 吳吉義,王中友.MySQL原理與Web系統(tǒng)開發(fā)[M].北京:清華大學出版社,2009.

    [文章編號]1619-2737(2015)06-20-623

    猜你喜歡
    數(shù)據(jù)庫
    數(shù)據(jù)庫
    財經(jīng)(2017年15期)2017-07-03 22:40:49
    數(shù)據(jù)庫
    財經(jīng)(2017年2期)2017-03-10 14:35:35
    兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
    數(shù)據(jù)庫
    財經(jīng)(2016年15期)2016-06-03 07:38:02
    數(shù)據(jù)庫
    財經(jīng)(2016年3期)2016-03-07 07:44:46
    數(shù)據(jù)庫
    財經(jīng)(2016年6期)2016-02-24 07:41:51
    數(shù)據(jù)庫
    財經(jīng)(2015年3期)2015-06-09 17:41:31
    數(shù)據(jù)庫
    財經(jīng)(2014年21期)2014-08-18 01:50:18
    數(shù)據(jù)庫
    財經(jīng)(2014年6期)2014-03-12 08:28:19
    數(shù)據(jù)庫
    財經(jīng)(2013年6期)2013-04-29 17:59:30
    綦江县| 明溪县| 饶平县| 和硕县| 那坡县| 成安县| 北京市| 太原市| 克东县| 乌拉特中旗| 大新县| 枞阳县| 盐亭县| 莱西市| 沅陵县| 浪卡子县| 河西区| 阜南县| 沈丘县| 陆川县| 天台县| 昌平区| 台北县| 栖霞市| 大姚县| 蒙阴县| 正定县| 屏东县| 伊金霍洛旗| 绵竹市| 高尔夫| 平邑县| 仁化县| 成安县| 尤溪县| 石门县| 宁津县| 海南省| 武定县| 巴中市| 迁安市|