2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  基于RFID的庫(kù)存管理系統(tǒng)</p><p>  Inventory Management System Based on RFID</p><p><b>  摘要</b></p><p>  射頻識(shí)別(Radio Frequency Identification, RFID)作為一種快速、實(shí)時(shí)、準(zhǔn)確采集與處理信息的高新枝

2、術(shù)和信息標(biāo)準(zhǔn)化的基礎(chǔ),被列為本世紀(jì)十人重要技術(shù)之一。RFID技術(shù)已逐漸成為企業(yè)提高物流供應(yīng)鏈管理水平,降低成本,企業(yè)管理信息化,參與國(guó)際經(jīng)濟(jì)大循環(huán),增強(qiáng)企業(yè)核心競(jìng)爭(zhēng)力不可缺少的技術(shù)工具和手段。</p><p>  本文首先介紹了了RFID的系統(tǒng)組成,工作原理,發(fā)展歷史,技術(shù)標(biāo)準(zhǔn)現(xiàn)狀以及RFID在管理中的應(yīng)用。然后通過(guò)對(duì)ODBC和JDBC的討論,確定了兩種中間件的特點(diǎn)。本文利用JBuilder 9.0,SQL Se

3、rver 2000,JDBC設(shè)計(jì)了基于RFID的庫(kù)存管理系統(tǒng)。該系統(tǒng)分為登陸模塊,查詢模塊,出庫(kù)模塊,入庫(kù)模塊。 文中詳細(xì)列出了各個(gè)模塊的程序流程圖,完成帶有RFID的貨物在庫(kù)存中的流動(dòng)模擬。其中程序的核心部分是實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的建立和針對(duì)數(shù)據(jù)庫(kù)的查詢等操作。</p><p>  本文的最后列寫(xiě)出了對(duì)于RFID發(fā)展前景的展望。</p><p>  關(guān)鍵詞:RFID,庫(kù)存管理,JDBC,SQL

4、Server 2000</p><p><b>  Abstract</b></p><p>  As a speedy, real-time, accurate information collection and procession technology Radio Frequency Identification has been ranked as one

5、of the most important technology in this century. RFID has gradually become a necessary technological means for manufacture to improve supply chain management, reduce cost, realize management information, joins in intern

6、ational economy circle, strength enterprises’ core compatibility.</p><p>  In this article, author first introduced RFID’s making up, working principle, improving history, the technical standard actuality an

7、d the application in the management. Then by discussing ODBC and JDBC, the author found out the characters of these two databases. In this article, author using JBuilder9.0, SQL Server 2000, JDBC designed a warehouse man

8、agement system based on RFID. This system is made up with the login module, query module, shipment module. The flowcharts of these modules are detai</p><p>  In the end, author listed the prospect of the dev

9、elopment of RFID.</p><p>  Keyboard: RFID,Inventory management,JDBC,SQL Server 2000 </p><p><b>  目錄</b></p><p><b>  摘要2</b></p><p>  Abstract

10、3</p><p><b>  1.選題背景5</b></p><p>  1.1 RFID簡(jiǎn)介5</p><p>  1.2 RFID發(fā)展歷史5</p><p>  1.3 RFID的系統(tǒng)組成6</p><p>  1.4 RFID工作原理6</p><p> 

11、 1.5 RFID技術(shù)標(biāo)準(zhǔn)現(xiàn)狀7</p><p>  1.6 RFID在管理中的應(yīng)用10</p><p>  2 庫(kù)存管理系統(tǒng)方法論證12</p><p>  2.1 ODBC12</p><p>  2.2 JDBC13</p><p>  2.3 ODBC和JDBC的比較19</p>&l

12、t;p>  3. RFID庫(kù)存管理系統(tǒng)設(shè)計(jì)過(guò)程21</p><p>  3.1管理系統(tǒng)設(shè)計(jì)前提21</p><p>  3.2程序使用的軟件工具21</p><p>  3.3數(shù)據(jù)庫(kù)類型的選定22</p><p>  3.4數(shù)據(jù)庫(kù)的建立和連接23</p><p>  3.5系統(tǒng)流程25</p&g

13、t;<p>  4. 總結(jié)與展望40</p><p><b>  致謝41</b></p><p><b>  參考文獻(xiàn):42</b></p><p><b>  1.選題背景</b></p><p>  1.1 RFID簡(jiǎn)介</p><

14、p>  RFID射頻識(shí)別是一種非接觸式的自動(dòng)識(shí)別技術(shù),它通過(guò)射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無(wú)須人工干預(yù),可工作于各種惡劣環(huán)境。RFID技術(shù)可識(shí)別高速運(yùn)動(dòng)物體并可同時(shí)識(shí)別多個(gè)標(biāo)簽,操作快捷方便。 </p><p>  埃森哲實(shí)驗(yàn)室首席科學(xué)家弗格森認(rèn)為RFID是一種突破性的技術(shù):"第一,可以識(shí)別單個(gè)的非常具體的物體,而不是像條形碼那樣只能識(shí)別一類物體;第二,其采用無(wú)線電射頻,可以透過(guò)

15、外部材料讀取數(shù)據(jù),而條形碼必須靠激光來(lái)讀取信息;第三,可以同時(shí)對(duì)多個(gè)物體進(jìn)行識(shí)讀,而條形碼只能一個(gè)一個(gè)地讀。此外,儲(chǔ)存的信息量也非常大。[1]</p><p>  1.2 RFID發(fā)展歷史 </p><p>  RFID技術(shù)的發(fā)展最早可以追溯至第二次世界大戰(zhàn)時(shí)期,那時(shí)它被用來(lái)在空中作戰(zhàn)行動(dòng)中進(jìn)行敵我識(shí)別。從歷史上看,RFID技術(shù)的發(fā)展基本可按10年期劃分為幾個(gè)階段(參見(jiàn)表1)。因此RFID

16、并不是一個(gè)嶄新的技術(shù)。從分類上看,因?yàn)榻?jīng)過(guò)多年的發(fā)展,13.56MHz以下的RFID技術(shù)已相對(duì)成熟,目前業(yè)界最關(guān)注的是位于中高頻段的RFID技術(shù),特別是860MHz~960MHz(UHF頻段)的遠(yuǎn)距離RFID技術(shù)發(fā)展最快;而2.45GHz和5.8GHz頻段由于產(chǎn)品擁擠,易受干擾,技術(shù)相對(duì)復(fù)雜,其相關(guān)的研究和應(yīng)用仍處于探索的階段。</p><p>  表1-1 RFID技術(shù)發(fā)展的歷程表 </p>&l

17、t;p>  1.3 RFID的系統(tǒng)組成</p><p>  一個(gè)典型的RFID系統(tǒng)一般由RFID標(biāo)簽、讀寫(xiě)器以及計(jì)算機(jī)系統(tǒng)等部分組成。其中RFID標(biāo)簽中一般保存有約定格式的編碼數(shù)據(jù),用以唯一標(biāo)識(shí)標(biāo)簽所附著的物體。與傳統(tǒng)的識(shí)別方式相比,RFID技術(shù)無(wú)需直接接觸、無(wú)需光學(xué)可視、無(wú)需人工干預(yù)即可完成信息輸入和處理,且操作方便快捷。能夠廣泛應(yīng)用于生產(chǎn)、物流、交通、運(yùn)輸、醫(yī)療、防偽、跟蹤、設(shè)備和資產(chǎn)管理等需要收集和處

18、理數(shù)據(jù)的應(yīng)用領(lǐng)域,并被認(rèn)為是條形碼標(biāo)簽的未來(lái)替代品。 </p><p>  在具體的應(yīng)用過(guò)程中,根據(jù)不同的目的和環(huán)境,RFID系統(tǒng)的組成會(huì)有所不同,但從其工作原理來(lái)看,系統(tǒng)一般都由信號(hào)發(fā)射機(jī)、信號(hào)接收機(jī)、發(fā)射接收天線三部分組成。(1) 信號(hào)發(fā)射機(jī):在RFID 系統(tǒng)中,信號(hào)發(fā)射機(jī)為了不同的應(yīng)用目的,會(huì)以不同的形式存在,典型的形式是標(biāo)簽。標(biāo)簽相當(dāng)于條形碼技術(shù)中的條形碼符號(hào),用來(lái)存儲(chǔ)需要識(shí)別傳輸?shù)男畔?。另外,與條形碼不

19、同的是,標(biāo)簽必須能夠自動(dòng)或在外力的作用下,把存儲(chǔ)的信息主動(dòng)發(fā)射出去。標(biāo)簽一般是帶有線圈、天線、存儲(chǔ)器與控制系統(tǒng)的低電集成電路。(2) 信號(hào)接收機(jī):RFID系統(tǒng)中,信號(hào)接收機(jī)一般叫做閱讀器。閱讀器基本的功能就是提供與標(biāo)簽進(jìn)行數(shù)據(jù)傳輸?shù)耐緩?。另外,閱讀器還提供相當(dāng)復(fù)雜的信號(hào)狀態(tài)控制、奇偶錯(cuò)誤校驗(yàn)與更正功能等。(3) 發(fā)射接收天線:天線是標(biāo)簽與閱讀器之間傳輸數(shù)據(jù)的發(fā)射、接收裝置。RFID技術(shù)用于需要跟蹤眾多貨物資源、而人手又有限的倉(cāng)庫(kù)管理中是

20、非?,F(xiàn)實(shí)的。因?yàn)镽FID系統(tǒng)基于人們熟悉的Windows 或UNIX 平臺(tái),所以通常易于管理。</p><p>  1.4 RFID工作原理</p><p>  RFID系統(tǒng)的工作原理:讀寫(xiě)器通過(guò)天線發(fā)送出一定頻率的射頻信號(hào);當(dāng)RFID標(biāo)簽進(jìn)入讀寫(xiě)器工作場(chǎng)時(shí),其天線產(chǎn)生感應(yīng)電流,從而RFID標(biāo)簽獲得能量被激活并向讀寫(xiě)器發(fā)送出自身編碼等信息;讀寫(xiě)器接收到來(lái)自標(biāo)簽的載波信號(hào),對(duì)接收的信號(hào)進(jìn)行解

21、調(diào)和解碼后送至計(jì)算機(jī)主機(jī)進(jìn)行處理;計(jì)算機(jī)系統(tǒng)根據(jù)邏輯運(yùn)算判斷該標(biāo)簽的合法性,針對(duì)不同的設(shè)定做出相應(yīng)的處理和控制,發(fā)出指令信號(hào);RFID標(biāo)簽的數(shù)據(jù)解調(diào)部分從接收到的射頻脈沖中解調(diào)出數(shù)據(jù)并送到控制邏輯,控制邏輯接收指令完成存儲(chǔ)、發(fā)送數(shù)據(jù)或其他操作。[2]</p><p>  1.5 RFID技術(shù)標(biāo)準(zhǔn)現(xiàn)狀 </p><p>  1.5.1 ISO制定的RFID標(biāo)準(zhǔn)體系</p>&l

22、t;p>  RFID標(biāo)準(zhǔn)化工作最早可以追溯到20世紀(jì)90年代。1995年國(guó)際標(biāo)準(zhǔn)化組織ISO/IEC聯(lián)合技術(shù)委員會(huì)JTCl設(shè)立了子委員會(huì)SC31(以下簡(jiǎn)稱SC31),負(fù)責(zé)RFID標(biāo)準(zhǔn)化研究工作。SC31委員會(huì)由來(lái)自各個(gè)國(guó)家的代表組成,如英國(guó)的BSI IST34委員、歐洲CEN TC225成員。他們既是各大公司內(nèi)部咨詢者,也是不同公司利益的代表者。因此在ISO標(biāo)準(zhǔn)化制定過(guò)程中,有企業(yè)、區(qū)域標(biāo)準(zhǔn)化組織和國(guó)家三個(gè)層次的利益代表者。SC3

23、1子委員會(huì)負(fù)責(zé)RFID標(biāo)準(zhǔn)可以分為四個(gè)方面:數(shù)據(jù)標(biāo)準(zhǔn)(如編碼標(biāo)準(zhǔn)ISO/IEC 15691、數(shù)據(jù)協(xié)議ISO/IEC 15692、ISO/IEC 15693,解決了應(yīng)用程序、標(biāo)簽和空中接口多樣性的要求,提供了一套通用的通信機(jī)制)、空中接口標(biāo)準(zhǔn)(ISO/IEC 18000系列)、測(cè)試標(biāo)準(zhǔn)(性能測(cè)試ISO/IEC 18047和一致性測(cè)試標(biāo)準(zhǔn)ISO/IEC 18046)、實(shí)時(shí)定位(RTLS)(ISO/IEC 24730系列應(yīng)用接口與空中接口通信

24、標(biāo)準(zhǔn))方面的標(biāo)準(zhǔn)。 </p><p>  這些標(biāo)準(zhǔn)涉及到RFID標(biāo)簽、空中接口、測(cè)試標(biāo)準(zhǔn)、讀寫(xiě)器與到應(yīng)用程序之間的數(shù)據(jù)協(xié)議,它們考慮的是所有應(yīng)用領(lǐng)域的共性要求。</p><p>  ISO對(duì)于RFID的應(yīng)用標(biāo)準(zhǔn)是由應(yīng)用相關(guān)的子委員會(huì)制定。RFID在物流供應(yīng)鏈領(lǐng)域中的應(yīng)用方面標(biāo)準(zhǔn)由ISO TC 122/104 聯(lián)合工作組負(fù)責(zé)制定, 包括ISO17358應(yīng)用要求、ISO 17363貨運(yùn)

25、集裝箱、ISO 17364裝載單元、ISO 17365運(yùn)輸單元、ISO 17366產(chǎn)品包裝、ISO 17367產(chǎn)品標(biāo)簽。RFID在動(dòng)物追蹤方面的標(biāo)準(zhǔn)由ISO TC 23 SC19來(lái)制定,包括ISO 11784/11785動(dòng)物RFID畜牧業(yè)的應(yīng)用,ISO 14223動(dòng)物RFID畜牧業(yè)的應(yīng)用-高級(jí)標(biāo)簽的空中接口、協(xié)議定義。</p><p>  從ISO制訂的RFID標(biāo)準(zhǔn)內(nèi)容來(lái)說(shuō),RFID應(yīng)用標(biāo)準(zhǔn)是在RFID編碼、空中

26、接口協(xié)議、讀寫(xiě)器協(xié)議等基礎(chǔ)標(biāo)準(zhǔn)之上,針對(duì)不同使用對(duì)象,確定了使用條件、標(biāo)簽尺寸、標(biāo)簽粘貼位置、數(shù)據(jù)內(nèi)容格式、使用頻段等方面特定應(yīng)用要求的具體規(guī)范,同時(shí)也包括數(shù)據(jù)的完整性、人工識(shí)別等其他一些要求。通用標(biāo)準(zhǔn)提供了一個(gè)基本框架,應(yīng)用標(biāo)準(zhǔn)是對(duì)它的補(bǔ)充和具體規(guī)定。這一標(biāo)準(zhǔn)制訂思想,既保證了RFID技術(shù)具有互通與互操作性,又兼顧了應(yīng)用領(lǐng)域的特點(diǎn),能夠很好地滿足應(yīng)用領(lǐng)域的具體要求。</p><p>  1.5.2 EPCglo

27、ba l 制定的</p><p>  RFID標(biāo)準(zhǔn)體系與ISO 通用性RFID標(biāo)準(zhǔn)相比,EPCglobal標(biāo)準(zhǔn)體系是面向物流供應(yīng)鏈領(lǐng)域,可以看成是一個(gè)應(yīng)用標(biāo)準(zhǔn)。EPCglobal的目標(biāo)是解決供應(yīng)鏈的透明性和追蹤性,透明性和追蹤性是指供應(yīng)鏈各環(huán)節(jié)中所有合作伙伴都能夠了解單件物品的相關(guān)信息,如位置、生產(chǎn)日期信息。為此EPCglobal制定了EPC編碼標(biāo)準(zhǔn),它可以實(shí)現(xiàn)對(duì)所有物品提供單件惟一標(biāo)識(shí);也制定了空中接口協(xié)議、讀

28、寫(xiě)器協(xié)議。這些協(xié)議與ISO標(biāo)準(zhǔn)體系類似。在空中接口協(xié)議方面,目前EPCglobal的策略盡量與ISO兼容,如C1Gen2 UHF RFID標(biāo)準(zhǔn)遞交ISO將成為ISO 18000 6C標(biāo)準(zhǔn)。但EPCglobal空中接口協(xié)議有它的局限范圍,僅僅關(guān)注UHF 860~930MHz。</p><p>  除了信息采集以外,EPCglobal非常強(qiáng)調(diào)供應(yīng)鏈各方之間的信息共享,為此制定了信息共享的物聯(lián)網(wǎng)相關(guān)標(biāo)準(zhǔn),包括EPC中間

29、件規(guī)范、對(duì)象名解析服務(wù)ONS(Object Naming Service)、物理標(biāo)記語(yǔ)言(PhysicalMarkup Language)。這樣從信息的發(fā)布、信息資源的組織管理、信息服務(wù)的發(fā)現(xiàn)以及大量訪問(wèn)之間的協(xié)調(diào)等方面作出規(guī)定?!拔锫?lián)網(wǎng)”的信息量和信息訪問(wèn)規(guī)模大大超過(guò)普通的因特網(wǎng)。“物聯(lián)網(wǎng)”系列標(biāo)準(zhǔn)是根據(jù)自身的特點(diǎn)參照因特網(wǎng)標(biāo)準(zhǔn)制訂的?!拔锫?lián)網(wǎng)”是基于因特網(wǎng)的,與因特網(wǎng)具有良好的兼容性。</p><p>  物

30、聯(lián)網(wǎng)標(biāo)準(zhǔn)是EPCglobal所特有的,ISO僅僅考慮自動(dòng)身份識(shí)別與數(shù)據(jù)采集的相關(guān)標(biāo)準(zhǔn),數(shù)據(jù)采集以后如何處理、共享并沒(méi)有作規(guī)定。物聯(lián)網(wǎng)是未來(lái)的一個(gè)目標(biāo),對(duì)當(dāng)前應(yīng)用系統(tǒng)建設(shè)來(lái)說(shuō)具有指導(dǎo)意義。</p><p>  1.5.3 日本UID制定的RFID標(biāo)準(zhǔn)體系</p><p>  日本泛在中心制定RFID相關(guān)標(biāo)準(zhǔn)的思路類似于EPCglobal,目標(biāo)也是構(gòu)建一個(gè)完整的標(biāo)準(zhǔn)體系,編碼體系、空中接口協(xié)議

31、到泛在網(wǎng)絡(luò)體系結(jié)構(gòu),但是每一個(gè)部分的具體內(nèi)容存在差異。</p><p>  為了制定具有自主知識(shí)產(chǎn)權(quán)的RFID標(biāo)準(zhǔn),在編碼方面制定了ucode編碼體系,它能夠兼容日本已有的編碼體系,同時(shí)也能兼容國(guó)際其他的編碼體系。在空中接口方面積極參與ISO的標(biāo)準(zhǔn)制定工作,也盡量考慮與ISO相關(guān)標(biāo)準(zhǔn)兼容。在信息共享方面主要依賴于日本的泛在網(wǎng)絡(luò)它可以獨(dú)立于因特網(wǎng)實(shí)現(xiàn)信息的共享。</p><p>  泛在網(wǎng)絡(luò)

32、與EPCglobal的物聯(lián)網(wǎng)還是有區(qū)別的。EPC采用業(yè)務(wù)鏈的方式,面向企業(yè),面向產(chǎn)品信息的流動(dòng)(物聯(lián)網(wǎng)),比較強(qiáng)調(diào)與互聯(lián)網(wǎng)的結(jié)合。UID采用扁平式信息采集分析方式,強(qiáng)調(diào)信息的獲取與分析,比較強(qiáng)調(diào)前端的微型化與集成。</p><p>  1.5.4 三大標(biāo)準(zhǔn)體系空中接口協(xié)議的比較</p><p>  目前,ISO/IEC 18000、EPCglobal、日本UID三個(gè)空中接口協(xié)議正在完善中。

33、這三個(gè)標(biāo)準(zhǔn)相互之間并不兼容,主要差別在通訊方式、防沖突協(xié)議和數(shù)據(jù)格式這三個(gè)方面,在技術(shù)上差距其實(shí)并不大。</p><p>  這三個(gè)標(biāo)準(zhǔn)都按照RFID的工作頻率分為多個(gè)部分。在這些頻段中,以13。56MHz頻段的產(chǎn)品最為成熟,處于860~960MHz內(nèi)的UHF頻段的產(chǎn)品因?yàn)楣ぷ骶嚯x遠(yuǎn)且最可能成為全球通用的頻段而最受重視,發(fā)展最快。</p><p>  ISO/IEC 18000標(biāo)準(zhǔn)是最早開(kāi)

34、始制定的關(guān)于RFID的國(guó)際標(biāo)準(zhǔn),按頻段被劃分為7個(gè)部分。目前支持ISO/IEC 18000標(biāo)準(zhǔn)的RFID 產(chǎn)品最多。EPCglobal是由UCC 和EAN兩大組織聯(lián)合成立、吸收了麻省理工AutoID中心的研究成果后推出的系列標(biāo)準(zhǔn)草案。EPCGlobal最重視UHF頻段的RFID產(chǎn)品,極力推廣基于EPC編碼標(biāo)準(zhǔn)的RFID產(chǎn)品。目前,EPC Global標(biāo)準(zhǔn)的推廣和發(fā)展十分迅速,許多大公司如沃爾瑪?shù)榷际荅PC標(biāo)準(zhǔn)的支持者。日本的泛在中心(U

35、biquitous ID)一直致力于本國(guó)標(biāo)準(zhǔn)的RFID產(chǎn)品開(kāi)發(fā)和推廣,拒絕采用美國(guó)的EPC編碼標(biāo)準(zhǔn)。與美國(guó)大力發(fā)展UHF頻段RFID不同的是,日本對(duì)2。4GHz 微波頻段的RFID似乎更加青睞,目前日本已經(jīng)開(kāi)始了許多2。4GHz RFID產(chǎn)品的實(shí)驗(yàn)和推廣工作。標(biāo)準(zhǔn)的制定面臨越來(lái)越多的知識(shí)產(chǎn)權(quán)糾紛。不同的企業(yè)都想為自己的利益努力。同時(shí),EPC在努力成為ISO的標(biāo)準(zhǔn),ISO最終如何接受EPC的RFID標(biāo)準(zhǔn),還有待觀望。全球標(biāo)準(zhǔn)的不統(tǒng)一,硬件

36、產(chǎn)品的兼容方面必然不理想,阻礙應(yīng)用。[3]</p><p>  1.6 RFID在管理中的應(yīng)用</p><p>  電子標(biāo)簽因?yàn)槠渚哂蟹罌_撞性、封裝任意性、使用壽命長(zhǎng)、可重復(fù)利用等特點(diǎn),適合應(yīng)用于現(xiàn)在科學(xué)的庫(kù)存管理系統(tǒng)中。 現(xiàn)在的庫(kù)存管理系統(tǒng)通常使用條碼標(biāo)簽或是人工庫(kù)存管理單據(jù)書(shū)寫(xiě)等方式支持自有的庫(kù)存管理。但是條碼的易復(fù)制、不防污、不防潮等特點(diǎn),還有人工書(shū)寫(xiě)單據(jù)的煩瑣性,容易造成人為損失等

37、無(wú)法避免的缺點(diǎn),使得現(xiàn)在國(guó)內(nèi)的庫(kù)存管理供應(yīng)鏈?zhǔn)冀K存在著缺陷。隨著電子標(biāo)簽這一最新科技產(chǎn)品的投入應(yīng)用,可以從根本上解決上述的問(wèn)題。</p><p>  用電子標(biāo)簽支持現(xiàn)今的庫(kù)存管理系統(tǒng)的優(yōu)勢(shì)在于:</p><p>  有效管理貨物裝箱作業(yè)。(減少損失)</p><p><b>  信息收集自動(dòng)化。</b></p><p>

38、<b>  產(chǎn)品來(lái)源之核對(duì)。</b></p><p>  每階段制程中產(chǎn)品品質(zhì)之稽核。</p><p>  可更改電子標(biāo)簽上的資料 而無(wú)須更改產(chǎn)品包裝。</p><p>  有效管理裝貨(減少丟失)。</p><p>  自動(dòng)化結(jié)果便能更有效品質(zhì)監(jiān)督。</p><p>  可以全程跟蹤庫(kù)存貨物的物

39、流情況,將損失和失誤降低到最低點(diǎn)。</p><p>  下面是國(guó)內(nèi)外常見(jiàn)的RFID管理的應(yīng)用:</p><p>  1.6.1 車輛自動(dòng)識(shí)別管理</p><p>  高速公路自動(dòng)收費(fèi)系統(tǒng)是RFID 技術(shù)最成功的應(yīng)用之一。目前ETC(Electronic Toll Collection,不停車收費(fèi)系統(tǒng))是世界上最先進(jìn)的路橋收費(fèi)方式。當(dāng)安裝在車輛上的車載電子標(biāo)簽進(jìn)收費(fèi)站

40、時(shí),收費(fèi)站上的無(wú)線射頻裝置會(huì)自動(dòng)激活車載電子標(biāo)簽,并完成相互間的認(rèn)證識(shí)別過(guò)程,能將有關(guān)車輛信息輸入計(jì)算機(jī)收費(fèi)處理系統(tǒng),同時(shí)利用計(jì)算機(jī)聯(lián)網(wǎng)技術(shù)與銀行進(jìn)行結(jié)算,完成費(fèi)用的收繳工作,從而達(dá)到無(wú)需停車即可交納路橋費(fèi)的目的。ETC 是國(guó)際上正在努力開(kāi)發(fā)并推廣的一種用于公路、大橋和隧道的電子自動(dòng)收費(fèi)系統(tǒng)。該技術(shù)在國(guó)外已有較長(zhǎng)的發(fā)展歷史,美國(guó)、歐洲等許多國(guó)家和地區(qū)的電子收費(fèi)系統(tǒng)已經(jīng)局部聯(lián)網(wǎng)并逐步形成規(guī)模效益。[4]</p><p&

41、gt;<b>  1.6.2倉(cāng)儲(chǔ)管理</b></p><p>  將RFID 系統(tǒng)用于智能倉(cāng)庫(kù)貨物管理,有效地解決了倉(cāng)庫(kù)與貨物流動(dòng)有關(guān)的信息管理。它不但增加了一天內(nèi)處理貨物的件數(shù),而且還監(jiān)看這些貨物的一切信息。射頻天線安置在倉(cāng)庫(kù)相關(guān)的各個(gè)部位和貨物所通過(guò)的倉(cāng)庫(kù)大門(mén)邊上,每輛叉車上都有讀寫(xiě)器和天線,每個(gè)貨物都貼有電子標(biāo)簽,所有電子標(biāo)簽信息都被存儲(chǔ)在倉(cāng)庫(kù)的中心計(jì)算機(jī)里,該貨物的有關(guān)信息都能在計(jì)算

42、機(jī)里查到。當(dāng)貨物被裝走運(yùn)往別處時(shí),相關(guān)的讀寫(xiě)器就能識(shí)別并告知計(jì)算中心它被放在哪輛拖車上。這樣,管理中心可以實(shí)時(shí)地了解到已經(jīng)入庫(kù)了多少貨物和發(fā)送了多少貨物或者貨物在倉(cāng)庫(kù)轉(zhuǎn)移的情況,并可自動(dòng)識(shí)別貨物,確定貨物的位置。</p><p>  2 庫(kù)存管理系統(tǒng)方法論證</p><p>  為了有利于庫(kù)存系統(tǒng)的webserver發(fā)布,這里使用的編程工具為java。庫(kù)存管理最重要,最核心的部分是與數(shù)據(jù)庫(kù)

43、的連接與對(duì)數(shù)據(jù)庫(kù)的操作。這里我們使用的 SQL Server 2000 數(shù)據(jù)庫(kù)軟件。</p><p>  這里涉及到一個(gè)ODBC和JDBC的問(wèn)題,下面我們來(lái)論述下這兩種數(shù)據(jù)庫(kù)的優(yōu)缺點(diǎn)。</p><p><b>  2.1 ODBC </b></p><p>  2.1.1 ODBC簡(jiǎn)介</p><p>  O D B C

44、 的基本思想是為用戶提供簡(jiǎn)單、標(biāo)準(zhǔn)、透明的數(shù)據(jù)庫(kù)連接的公共編程接口,開(kāi)發(fā)廠商根據(jù)ODBC 的標(biāo)準(zhǔn)去實(shí)現(xiàn)底層的驅(qū)動(dòng)程序,這個(gè)驅(qū)動(dòng)對(duì)用戶是透明的,并允許根據(jù)不同的DBMS 采用不同的技術(shù)加以優(yōu)化實(shí)現(xiàn),這就利于不斷吸收新的技術(shù)而趨完善。 ODBC 出現(xiàn)以后,用戶安裝不同的DBMS 驅(qū)動(dòng)就可用同樣的SQL 語(yǔ)句實(shí)現(xiàn)在不同DBMS 上進(jìn)行同樣的操作,而且無(wú)需預(yù)編譯。ODBC 帶來(lái)了數(shù)據(jù)庫(kù)連接方式的變革。在傳統(tǒng)方式中,開(kāi)發(fā)人員要熟悉多個(gè)D B M

45、S 及其API ,一旦DBMS 端出現(xiàn)變動(dòng),則往往導(dǎo)致用戶端系統(tǒng)重新編建或者源代碼的修改,這給開(kāi)發(fā)和維護(hù)工作帶來(lái)了很大困難。在ODBC 方式中,不管底層網(wǎng)絡(luò)環(huán)境如何,也無(wú)論采用何種DBMS,用戶在程序中都使用同一套標(biāo)準(zhǔn)代碼,無(wú)需逐個(gè)了解各DBMS 及其API 的特點(diǎn),源程序不因底層的變化而重新編建或修改,從而減輕了開(kāi)發(fā)維護(hù)的工作量,縮短了開(kāi)發(fā)周期。</p><p>  2.1.2 ODBC的特點(diǎn):</p&g

46、t;<p>  (1) 使用戶程序有很高的互操作性,相同的目標(biāo)代碼適用于不同的D B M S 。</p><p>  (2) 由于ODBC 的開(kāi)放性,它為程序集成提供了便利,為客戶機(jī)/ 服務(wù)器結(jié)構(gòu)提供了技術(shù)支持。</p><p>  (3) 由于應(yīng)用與底層網(wǎng)絡(luò)環(huán)境和DBMS 分開(kāi),簡(jiǎn)化了開(kāi)發(fā)維護(hù)上的困難。</p><p>  2.1.3 ODBC 的體

47、系結(jié)構(gòu)和實(shí)現(xiàn)</p><p>  O D B C 是依靠分層結(jié)構(gòu)來(lái)實(shí)現(xiàn)的,如此可保證其標(biāo)準(zhǔn)性和開(kāi)放性。它共分為四層:應(yīng)用程序、驅(qū)動(dòng)程序管理器、驅(qū)動(dòng)程序和數(shù)據(jù)源。下面我們?cè)敿?xì)介紹各層的功能。</p><p>  (1) 應(yīng)用程序?qū)?Application)使用ODBC 接口的應(yīng)用程序可執(zhí)行以下任務(wù):</p><p>  1)請(qǐng)求與數(shù)據(jù)源的連接和會(huì)話(SQLConnec

48、t);2)向數(shù)據(jù)源發(fā)送SQL 請(qǐng)求(SQLExecDirct 或SQLExecute); 3)對(duì)SQL 請(qǐng)求的結(jié)果定義存儲(chǔ)區(qū)和數(shù)據(jù)格式;4)請(qǐng)求結(jié)果;5)處理錯(cuò)誤;6)如果需要,把結(jié)果返回給用戶; 7)對(duì)事務(wù)進(jìn)行控制,請(qǐng)求執(zhí)行或回退操作(SQLTransact); 8)終止對(duì)數(shù)據(jù)源的連接(SQLDisconnect)。</p><p>  (2) 驅(qū)動(dòng)程序管理器(Driver Manager) 由微軟提供的驅(qū)動(dòng)程

49、序管理器是帶有輸入庫(kù)的動(dòng)態(tài)連接庫(kù)ODBC。DLL ,其主要目的是裝入驅(qū)動(dòng)程序,此外還執(zhí)行以下工作: 1)處理幾個(gè)ODBC 初始化調(diào)用; 2)為每一個(gè)驅(qū)動(dòng)程序提供ODBC 函數(shù)入口點(diǎn); 3)為O D B C 調(diào)用提供參數(shù)和次序驗(yàn)證。</p><p>  (3) 驅(qū)動(dòng)程序(Driver) 驅(qū)動(dòng)程序是實(shí)現(xiàn)ODBC 函數(shù)和數(shù)據(jù)源交互的DLL,當(dāng)應(yīng)用程序調(diào)用SQL Connect 或者SQLDriverConnect 函數(shù)

50、時(shí),驅(qū)動(dòng)程序管理器裝入相應(yīng)的驅(qū)動(dòng)程序,它對(duì)來(lái)自應(yīng)用程序的ODBC 函數(shù)調(diào)用進(jìn)行應(yīng)答,按照其要求執(zhí)行以下任務(wù): 1)建立與數(shù)據(jù)源的連接; 2)向數(shù)據(jù)源提交請(qǐng)求; 3)在應(yīng)用程序需求時(shí),轉(zhuǎn)換數(shù)據(jù)格式; 4)返回結(jié)果給應(yīng)用程序; 5)將運(yùn)行錯(cuò)誤格式化為標(biāo)準(zhǔn)代碼返回; 6)在需要時(shí)說(shuō)明和處理光標(biāo)。</p><p>  (4) 數(shù)據(jù)源[5]</p><p><b>  2.2 JDBC &

51、lt;/b></p><p>  2.2.1 JDBC簡(jiǎn)介 </p><p>  JDBC(Java Database Connectivity ,Java 數(shù)據(jù)庫(kù)連接) 作為Java 平臺(tái)的一個(gè)標(biāo)準(zhǔn)組成部分,是根據(jù)“與平臺(tái)無(wú)關(guān)”的基本原則而設(shè)計(jì)的,對(duì)獨(dú)立于數(shù)據(jù)庫(kù)的跨平臺(tái)的數(shù)據(jù)庫(kù)訪問(wèn)提供了有力的技術(shù)支持。</p><p>  JDBC 是Java 程序連接和

52、訪問(wèn)各種數(shù)據(jù)庫(kù)的API(Application Programming Interface ,應(yīng)用程序接口) ,它由一組類和接口構(gòu)成,通過(guò)調(diào)用這些類和接口所提供的方法,提供了Java 程序與各種數(shù)據(jù)庫(kù)服務(wù)器之間的連接服務(wù),它支持ANSI SQL - 92 標(biāo)準(zhǔn),實(shí)現(xiàn)了從Java 程序內(nèi)調(diào)用標(biāo)準(zhǔn)的SQL 命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、插入、刪除和更新等操作,并確保數(shù)據(jù)事務(wù)的正常進(jìn)行。JDBC 在J2EE 平臺(tái)中使用JDBC 2.0以上的API 以

53、及JDBC 2.0 擴(kuò)展API ,它們提供了在企業(yè)級(jí)開(kāi)發(fā)應(yīng)用中對(duì)異構(gòu)數(shù)據(jù)庫(kù)的連接和跨平臺(tái)數(shù)據(jù)庫(kù)訪問(wèn)的重要接口。</p><p>  2.2.2 JDBC 的體系結(jié)構(gòu)和實(shí)現(xiàn)</p><p>  (1) Java作為數(shù)據(jù)庫(kù)前臺(tái) </p><p>  在信息時(shí)代,數(shù)據(jù)庫(kù)是用于收集和處理數(shù)據(jù)的工具,數(shù)據(jù)庫(kù)形成了許多公司基礎(chǔ)結(jié)構(gòu)的基礎(chǔ)。盡管數(shù)據(jù)庫(kù)系統(tǒng)非常適合數(shù)據(jù)的存儲(chǔ)和取得

54、,但人類需要某種前臺(tái)應(yīng)有程序以查閱和使用存放的數(shù)據(jù)。</p><p>  Java對(duì)建立數(shù)據(jù)庫(kù)服務(wù)器前臺(tái)應(yīng)用程序的開(kāi)發(fā)人員提供了幾個(gè)好處。Java是“一旦寫(xiě)成,到處運(yùn)行”的語(yǔ)言,即Java程序不經(jīng)改變即可部署到任何運(yùn)行Java虛擬機(jī)的計(jì)算機(jī)結(jié)構(gòu)和操作系統(tǒng)。對(duì)于大公司,有一個(gè)公用開(kāi)發(fā)平臺(tái)好處很大,編程人員可以不再為大公司中的各個(gè)平臺(tái)分別編程。Java也很吸引第三方開(kāi)發(fā)者,單個(gè)Java程序即可滿足大公司客戶的需求。&

55、lt;/p><p>  建立公司系統(tǒng)中基于Java的應(yīng)用程序和小程序的動(dòng)力是巨大的。公司對(duì)于將結(jié)構(gòu)和操作系統(tǒng)相關(guān)模型變成針對(duì)網(wǎng)絡(luò)的模型相當(dāng)有興趣。Java代表著節(jié)約資源成本的長(zhǎng)期戰(zhàn)略。</p><p>  對(duì)于開(kāi)發(fā)人員,Java代表巨大的市場(chǎng)機(jī)會(huì)。大中型企業(yè)很少不用數(shù)據(jù)庫(kù)進(jìn)行業(yè)務(wù)工作的,大部分公司將數(shù)據(jù)庫(kù)應(yīng)用到業(yè)務(wù)的各個(gè)方面,從人事資源到前線客戶銷售。</p><p>

56、  (2) JDBC API</p><p>  JDBC API使開(kāi)發(fā)者不必不斷重寫(xiě)程序而可以建立數(shù)據(jù)庫(kù)前臺(tái)。盡管ANSI委員會(huì)有個(gè)標(biāo)準(zhǔn)組,但每個(gè)數(shù)據(jù)庫(kù)系統(tǒng)廠家的系統(tǒng)連接和通訊方法仍然五花八門(mén)。</p><p>  為了建立健全獨(dú)立于平臺(tái)的應(yīng)用程序和基于Web的小程序,開(kāi)發(fā)人員應(yīng)考慮用Java開(kāi)發(fā)前臺(tái)連接辦法。從外部看,第三方軟件開(kāi)發(fā)者通過(guò)專用辦法,通過(guò)本地方法集成客戶機(jī)方庫(kù)或通過(guò)建立第

57、三層和新協(xié)議來(lái)滿足這種需求。</p><p>  JavaSoft是Sun公司負(fù)責(zé)開(kāi)發(fā)Java產(chǎn)品的業(yè)務(wù)單位,和數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)工具廠家一起建立獨(dú)立于DBMS的機(jī)制,使開(kāi)發(fā)人員不必考慮所用的特定數(shù)據(jù)庫(kù)而編寫(xiě)客戶機(jī)方應(yīng)用程序。產(chǎn)生的JDBC API第一版是核心JDK 2的一部分。</p><p>  JDBC向應(yīng)用程序開(kāi)發(fā)者提供了獨(dú)立于數(shù)據(jù)庫(kù)的統(tǒng)一的API。這個(gè)API提供了編寫(xiě)的標(biāo)準(zhǔn)和考慮所有

58、不同應(yīng)用程序設(shè)計(jì)的標(biāo)準(zhǔn)。其奧秘是一組由驅(qū)動(dòng)程序?qū)崿F(xiàn)的Java接口。驅(qū)動(dòng)程序負(fù)責(zé)標(biāo)準(zhǔn)JDBC調(diào)用向支持的數(shù)據(jù)庫(kù)所要的具體調(diào)用轉(zhuǎn)變。</p><p>  應(yīng)用程序編寫(xiě)一次并移植到各種驅(qū)動(dòng)程序上。應(yīng)用程序不變,驅(qū)動(dòng)程序則各不相同。驅(qū)動(dòng)程序可以用于開(kāi)發(fā)多層數(shù)據(jù)庫(kù)設(shè)計(jì)的中間層,也稱中間件(middleware)。</p><p>  除了向開(kāi)發(fā)者提供統(tǒng)一的獨(dú)立于DBMS的框架外,JDBC還提供了讓開(kāi)

59、發(fā)者保持?jǐn)?shù)據(jù)庫(kù)廠家提供的特定功能的辦法。JDBC驅(qū)動(dòng)程序必須支持ANSI AQL-2項(xiàng)目層,但JDBC允許開(kāi)發(fā)者直接將查詢字符串傳遞到連接的驅(qū)動(dòng)程序。這些字段可能是ANSI SQL也可能不是,或者根本不是AQL。這些字符串的使用是基礎(chǔ)驅(qū)動(dòng)程序的事。</p><p>  JDBC不是Mincrosoft的ODBC(開(kāi)放式數(shù)據(jù)庫(kù)連接)規(guī)范派生的,JDBC完全是用Java編寫(xiě)的,而ODBC是個(gè)C接口。但是,JDBC和O

60、DBC都是基于X/開(kāi)放SQL命令層接口(CLI),相同的概念性基礎(chǔ)使API工作進(jìn)展更快,使API的接受更加容易。JavaSoft提供了將JDBC變成ODBC的JDBC-ODBC橋。這個(gè)用本地方法完成的版本很小很有效。</p><p>  (3) JDBC 的組成</p><p>  JDBC 是實(shí)現(xiàn)Java 應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)對(duì)話的一種機(jī)制。 JDBC 由兩部分與數(shù)據(jù)庫(kù)獨(dú)立的API

61、組成,一部分是面向程序開(kāi)發(fā)人員的JDBCAPI ,另一部分是面向底層的JDBC Driver API。 JDBC提供了一個(gè)通用的JDBC Driver Manager ,用來(lái)管理各種數(shù)據(jù)庫(kù)軟件商提供的JDBC 驅(qū)動(dòng)程序,從而訪問(wèn)其數(shù)據(jù)庫(kù)。 此外,對(duì)沒(méi)有提供相應(yīng)JDBC 驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)系統(tǒng),開(kāi)發(fā)了特殊的驅(qū)動(dòng)程序:JDBC -ODBC 橋,該驅(qū)動(dòng)程序支持JDBC 通過(guò)現(xiàn)有的ODBC驅(qū)動(dòng)程序訪問(wèn)其數(shù)據(jù)庫(kù)系統(tǒng)。 JDBC 的基本層次結(jié)構(gòu)由Ja

62、va 程序、JDBC 驅(qū)動(dòng)程序管理器、驅(qū)動(dòng)程序和數(shù)據(jù)庫(kù)四部分組成。</p><p>  Java 程序:Java 程序包括Java 應(yīng)用程序和Ja2va 小應(yīng)用程序,主要是根據(jù)JDBC 方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和操作。 其主要任務(wù)有:請(qǐng)求與數(shù)據(jù)庫(kù)建立連接;向數(shù)據(jù)庫(kù)發(fā)送SQL 請(qǐng)求;為結(jié)果集定義存儲(chǔ)應(yīng)用和數(shù)據(jù)類型;查詢結(jié)果;處理錯(cuò)誤;控制傳輸、提交及關(guān)閉連接等操作。</p><p>  JDB

63、C 驅(qū)動(dòng)程序管理器:它能夠動(dòng)態(tài)地管理和維護(hù)數(shù)據(jù)庫(kù)查詢所需要的所有驅(qū)動(dòng)程序?qū)ο?實(shí)現(xiàn)Java 程序與特定驅(qū)動(dòng)程序的連接,從而體現(xiàn)JDBC的“與平臺(tái)無(wú)關(guān)”這一特點(diǎn)。 其主要任務(wù)有:為特定數(shù)據(jù)庫(kù)選擇驅(qū)動(dòng)程序;處理JDBC 初始化調(diào)用;為每個(gè)驅(qū)動(dòng)程序提供JDBC 功能的入口;為JDBC 調(diào)用執(zhí)行參數(shù)等。</p><p>  驅(qū)動(dòng)程序:驅(qū)動(dòng)程序處理JDBC 方法,向特定數(shù)據(jù)庫(kù)發(fā)送SQL 請(qǐng)求,并為Java 程序獲取結(jié)果。在

64、必要的時(shí)候,驅(qū)動(dòng)程序可以翻譯或優(yōu)化請(qǐng)求,使SQL 請(qǐng)求符合DBMS 支持的語(yǔ)言。 其主要任務(wù)有:建立與數(shù)據(jù)庫(kù)的連接;向數(shù)據(jù)庫(kù)發(fā)送請(qǐng)求;用戶程序請(qǐng)求時(shí),執(zhí)行翻譯;將錯(cuò)誤代碼格式化成標(biāo)準(zhǔn)的JDBC 錯(cuò)誤代碼等。 JDBC 是獨(dú)立于數(shù)據(jù)庫(kù)管理系統(tǒng)的,而每個(gè)數(shù)據(jù)庫(kù)系統(tǒng)均有自己的協(xié)議與客戶機(jī)通信,因此,JDBC 利用數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序來(lái)使用這些數(shù)據(jù)庫(kù)引擎。</p><p>  JDBC 驅(qū)動(dòng)程序由數(shù)據(jù)庫(kù)軟件商和第三方軟件商提供

65、,因此,根據(jù)編程所使用的數(shù)據(jù)庫(kù)系統(tǒng)不同,所需要的驅(qū)動(dòng)程序也有所不同。</p><p>  數(shù)據(jù)庫(kù):指Java 程序需要訪問(wèn)的數(shù)據(jù)庫(kù)及其數(shù)據(jù)庫(kù)管理系統(tǒng)。</p><p>  (3) JDBC 的工作機(jī)制</p><p>  如果用戶是從事軟件領(lǐng)域工作的,不可能沒(méi)有聽(tīng)說(shuō)過(guò)SQL(Structure Query Language:結(jié)構(gòu)化查詢語(yǔ)言),它是一種標(biāo)準(zhǔn)化的關(guān)系型數(shù)

66、據(jù)庫(kù)訪問(wèn)語(yǔ)言。在SQL看來(lái),數(shù)據(jù)庫(kù)就是表的集合,其中包含了行和列。SQL標(biāo)準(zhǔn)雖然也還處在不斷變革之中(任何一門(mén)標(biāo)準(zhǔn)如果已一成不變了,那只能說(shuō)明這門(mén)學(xué)科已經(jīng)停止發(fā)展了),但其基本內(nèi)容相對(duì)穩(wěn)定。JDBC定義了Java語(yǔ)言同SQL數(shù)據(jù)之間的程序設(shè)計(jì)接口。</p><p>  JDBC有一個(gè)非常獨(dú)特的動(dòng)態(tài)連接結(jié)構(gòu),它使得系統(tǒng)模塊化。使用JDBC來(lái)完成對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)包括以下四個(gè)主要組件:Java的應(yīng)用程序、JDBC驅(qū)動(dòng)器管

67、理器、驅(qū)動(dòng)器和數(shù)據(jù)源。</p><p>  JavaSoft公司開(kāi)發(fā)了JDBC API,JDBC API是一個(gè)標(biāo)準(zhǔn)統(tǒng)一的SQL數(shù)據(jù)存取接口。JDBC在Internet中的作用與ODBC在Windows系列中的作用類似。它為Java程序提供了一個(gè)統(tǒng)一縫地操作各種數(shù)據(jù)庫(kù)的接口,程序員編程時(shí),可以不關(guān)心它所要操作的數(shù)據(jù)庫(kù)是哪個(gè)廠家的產(chǎn)品,從而提高了軟件的通用性,而且在Internet上確實(shí)無(wú)法預(yù)料你的用戶想訪問(wèn)什么類型

68、的數(shù)據(jù)庫(kù)。只要系統(tǒng)上安裝了正確的驅(qū)動(dòng)器組,JDBC應(yīng)用程序就可以訪問(wèn)其相關(guān)的數(shù)據(jù)庫(kù)。</p><p>  用JDBC來(lái)實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù)記錄可以采用下面的幾個(gè)步驟:</p><p>  1) 通過(guò)驅(qū)動(dòng)器管理器獲取連接接口。</p><p>  2) 獲得Statement或它的子類。</p><p>  3) 限制Statement中的參數(shù)。&l

69、t;/p><p>  4) 執(zhí)行Statement。</p><p>  5) 查看返回的行數(shù)是否超出范圍。</p><p>  6) 關(guān)閉Statement。</p><p>  7) 處理其它的Statement</p><p>  8) 關(guān)閉連接接口。</p><p>  (4) JDBC 驅(qū)

70、動(dòng)程序的分類</p><p>  JDBC驅(qū)動(dòng)程序?qū)崿F(xiàn)在JDBC API 中定義的所有抽象類和接口,為通用的Driver Manager 提供JD2BC API。JDBC 驅(qū)動(dòng)程序通常由數(shù)據(jù)庫(kù)廠商提供,目前主流數(shù)據(jù)庫(kù)產(chǎn)品都提供相關(guān)的JDBC 驅(qū)動(dòng)程序。根據(jù)訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù)不同,JDBC 驅(qū)動(dòng)程序相應(yīng)地分為四種類型,如圖1 所示。 不同類型的JDBC驅(qū)動(dòng)程序有著不一樣的特性和使用方法。</p><

71、;p>  第一類:JDBC - ODBC 橋驅(qū)動(dòng)程序(JDBC - OD2BC Bridge) 。 此類驅(qū)動(dòng)程序提供了通過(guò)ODBC 驅(qū)動(dòng)程序的JDBC 訪問(wèn)。 其特點(diǎn)是必須在本地計(jì)算機(jī)上先安裝好ODBC 驅(qū)動(dòng)程序,然后通過(guò)JDBC - ODBCBridge 的轉(zhuǎn)換,將Java 程序中使用的JDBC API 訪問(wèn)指令轉(zhuǎn)換成ODBC API 指令,進(jìn)而通過(guò)ODBC 驅(qū)動(dòng)程序調(diào)用本地?cái)?shù)據(jù)庫(kù)驅(qū)動(dòng)代碼完成對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。 這種方法的不足是:

72、執(zhí)行效率比較低,不適合對(duì)大數(shù)據(jù)量存取的應(yīng)用;要求客戶端必須安裝ODBC驅(qū)動(dòng),不適合基于InternetPIntranet 的應(yīng)用。</p><p>  第二類:部分Java 的本地JDBC API 橋驅(qū)動(dòng)程序(JDBC - Native API Bridge) 。 同第一類一樣,此類驅(qū)動(dòng)程序也必須在本地計(jì)算機(jī)上先安裝好特定的驅(qū)動(dòng)程序(類似ODBC) ,然后通過(guò)JDBC - NativeAPI Bridge 的轉(zhuǎn)換

73、, 把Java 程序中使用的JDBCAPI 轉(zhuǎn)換成Native API ,進(jìn)而存取數(shù)據(jù)庫(kù)。 這種方法效率比第一類驅(qū)動(dòng)程序效率雖然高一些,但仍然需要在每臺(tái)客戶機(jī)上預(yù)先安裝本地API 庫(kù),因此不利于維護(hù)和使用。</p><p>  第三類:純Java 的JDBC 中間件驅(qū)動(dòng)程序(JD2BC - Middleware) 。 使用這類驅(qū)動(dòng)程序時(shí)不需要在本地計(jì)算機(jī)上安裝任何附加軟件,但是必須在安裝數(shù)據(jù)庫(kù)管理系統(tǒng)的服務(wù)器端加

74、裝中間件(Middle2ware) ,這個(gè)中間件負(fù)責(zé)所有存取數(shù)據(jù)庫(kù)時(shí)必要的轉(zhuǎn)換。 此類驅(qū)動(dòng)程序能將JDBC 訪問(wèn)轉(zhuǎn)換成與數(shù)據(jù)庫(kù)無(wú)關(guān)的標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議(通常是HTTP 或HTTPS) 送出,然后由一個(gè)中間件服務(wù)器再將其轉(zhuǎn)換成數(shù)據(jù)專用的訪問(wèn)指令,完成對(duì)數(shù)據(jù)庫(kù)的操作。 中間件服務(wù)器能支持對(duì)多種數(shù)據(jù)庫(kù)的訪問(wèn)。 由于是基于中間件服務(wù)器的,這類驅(qū)動(dòng)程序的體積最小,效率較高,具有最大的靈活性,缺點(diǎn)是需要一個(gè)中間服務(wù)器的支持。 此類驅(qū)動(dòng)采用標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,

75、可以被防火墻支持,是Internet 應(yīng)用理想的解決方案。</p><p>  第四類:純Java 的JDBC 驅(qū)動(dòng)程序(Pure JDBCDriver) 。 使用這類驅(qū)動(dòng)程序時(shí)無(wú)需安裝任何附加的軟件(無(wú)論是本地計(jì)算機(jī)或是數(shù)據(jù)庫(kù)服務(wù)器端) ,所有存取數(shù)據(jù)庫(kù)的操作都直接由JDBC 驅(qū)動(dòng)程序來(lái)完成。 此類驅(qū)動(dòng)程序能將JDBC 調(diào)用轉(zhuǎn)換成DBMS 專用的網(wǎng)絡(luò)協(xié)議。 數(shù)據(jù)庫(kù)廠商是這一類驅(qū)動(dòng)程序的主要提供者。 它允許從客戶

76、機(jī)到數(shù)據(jù)庫(kù)服務(wù)器的直接調(diào)用。 這種驅(qū)動(dòng)程序的效率最高,但由于采用DBMS專用的網(wǎng)絡(luò)協(xié)議,可能不被防火墻支持。 在Internet應(yīng)用中會(huì)存在潛在安全隱患。</p><p>  綜上所述,最佳的JDBC 驅(qū)動(dòng)程序類型是第四類,它不會(huì)增加任何額外的開(kāi)銷,并且由純Java語(yǔ)言開(kāi)發(fā)而成,擁有最佳的兼容性。 由于第一類和第二類的JDBC 驅(qū)動(dòng)程序都必須事先安裝其他附加的軟件,有損Java 數(shù)據(jù)庫(kù)程序的兼容性。 第三類JDB

77、C 驅(qū)動(dòng)程序也是不錯(cuò)的選擇,它也是由純Java 語(yǔ)言開(kāi)發(fā)而成的,并且中間件也僅需要在服務(wù)器上安裝。 因此,建議最好以第三類和第四類JDBC 驅(qū)動(dòng)程序?yàn)橹饕x擇,第一類和第二類的JDBC 驅(qū)動(dòng)程序?yàn)榇我x擇。。 </p><p>  (5) 利用JDBC代替CGI</p><p>  迄今為止,通過(guò)Java訪問(wèn)數(shù)據(jù)庫(kù)的唯一方法就是利用Java中的流調(diào)和訪問(wèn)Common Gateway Int

78、erface(CGI,公用網(wǎng)關(guān)接口)程序。通過(guò)Java調(diào)用CGI腳本其實(shí)是執(zhí)行一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)并返回結(jié)果的獨(dú)立程序。</p><p>  使用這種方法速度很慢,而且會(huì)在應(yīng)用程序中引入更多的錯(cuò)誤。這是由于利用兩種不同的開(kāi)發(fā)語(yǔ)言開(kāi)發(fā)程序,需要掌握兩種不同的技術(shù)。使用JDBC,用戶只要了解Java語(yǔ)言即可,而使用CGI,用戶必須同時(shí)使用Java和另一種編程語(yǔ)言。</p><p>  使用JDBC的

79、另一個(gè)原因是它的速度比CGI方法更快。使用CGI方法通常要求計(jì)算機(jī)執(zhí)行另一個(gè)獨(dú)立的程序。這個(gè)獨(dú)立的程序訪問(wèn)數(shù)據(jù)庫(kù),處理數(shù)據(jù),并將結(jié)果返回給調(diào)用程序。這就需要多級(jí)處理,因而增加了等待時(shí)間和出錯(cuò)概率。</p><p>  調(diào)用CGI腳本通常是通過(guò)Web服務(wù)器執(zhí)行一個(gè)新的腳本,而執(zhí)行JDBC的數(shù)據(jù)庫(kù)命令只需要某種將SQL命令發(fā)送給數(shù)據(jù)庫(kù)的服務(wù)器。這就大大縮短了執(zhí)行SQL語(yǔ)句的時(shí)間,CGI腳本必須獨(dú)立地連接數(shù)據(jù)庫(kù),處理執(zhí)

80、行結(jié)構(gòu),而JDBC的解決方案使應(yīng)用程序直接與數(shù)據(jù)庫(kù)相連,執(zhí)行各種操作。[6]</p><p>  2.3 ODBC和JDBC的比較</p><p>  JDBC API用于連接Java應(yīng)用程序與各種關(guān)系數(shù)據(jù)庫(kù)。這使得人們?cè)诮⒖蛻?服務(wù)器應(yīng)用程序時(shí),通常把Java作為編程語(yǔ)言,把任何一種瀏覽器作為應(yīng)用程序的友好界面,把Internet或Intranet作為網(wǎng)絡(luò)主干,把有關(guān)的數(shù)據(jù)庫(kù)作為數(shù)據(jù)庫(kù)

81、后端。以下是使用JDBC的優(yōu)缺點(diǎn)。</p><p><b>  優(yōu)點(diǎn)如下:</b></p><p>  (1) JDBC API與ODBC十分相似,有利于用戶理解。</p><p>  (2) JDBC使得編程人員從復(fù)雜的驅(qū)動(dòng)器調(diào)用命令和函數(shù)中解脫出來(lái),可以致力于應(yīng)用程序中的關(guān)鍵地方。</p><p>  (3) JDB

82、C支持不同的關(guān)系數(shù)據(jù)庫(kù),使得程序的可移植性大大加強(qiáng)。</p><p>  (4) 用戶可以使用JDBC-ODBC橋驅(qū)動(dòng)器將JDBC函數(shù)調(diào)用轉(zhuǎn)換為ODBC。</p><p>  (5) JDBC API是面向?qū)ο蟮?,可以讓用戶把常用的方法封裝為一個(gè)類,備后用。</p><p><b>  缺點(diǎn)如下:</b></p><p>

83、;  (1) 使用JDBC,訪問(wèn)數(shù)據(jù)記錄的速度會(huì)受到一定程度的影響。</p><p>  (2) JDBC結(jié)構(gòu)中包含了不同廠家的產(chǎn)品,這就給更改數(shù)據(jù)源帶來(lái)了很大的麻煩。</p><p>  3. RFID庫(kù)存管理系統(tǒng)設(shè)計(jì)過(guò)程</p><p>  3.1管理系統(tǒng)設(shè)計(jì)前提</p><p>  該RFID庫(kù)存管理系統(tǒng)是一個(gè)建立在RFID讀取接收器以

84、上的系統(tǒng)。該系統(tǒng)中所有有關(guān)貨物的信息都是來(lái)自于RFID讀取器和遠(yuǎn)端服務(wù)器。讀取器將在庫(kù)存中流通的貨物的RFID碼讀出后交給管理系統(tǒng),管理系統(tǒng)再利用web servers 獲取該RFID碼對(duì)應(yīng)貨物的詳細(xì)信息并放入數(shù)據(jù)庫(kù),從而獲得數(shù)據(jù)信息。故該管理系統(tǒng)的設(shè)計(jì)前提是RFID讀取器和web servers 能夠正常合作進(jìn)行。但由于時(shí)間有限,在本文中并未涉及到該管理系統(tǒng)和兩者的合作協(xié)調(diào)。</p><p>  3.2程序使用

85、的軟件工具</p><p>  3.2.1 JBuilder 9.0</p><p>  JBulider 是目前最好的java開(kāi)發(fā)工具之一,在協(xié)同管理,對(duì)J2EE和XML的支持均走在其他產(chǎn)品的前面。</p><p>  JBuilder的主要特性:</p><p>  (1) 提供與Tomcat的集成,使Web開(kāi)發(fā)更容易。</p>

86、;<p>  (2) 提供了對(duì)企業(yè)應(yīng)用的開(kāi)發(fā)功能,可以集成多種應(yīng)用服務(wù)器。</p><p>  (3) 提供了更簡(jiǎn)單的程序發(fā)布功能,所有的應(yīng)用都可以打包。</p><p>  (4) 提供了團(tuán)隊(duì)開(kāi)發(fā)能力,可以集成多種版本控制產(chǎn)品。</p><p>  JBuilder是遵循Sun公司J2EE標(biāo)準(zhǔn)的可視化集成開(kāi)發(fā)工具。JBuilder是一種處于市場(chǎng)領(lǐng)先地

87、位的跨平臺(tái)環(huán)境,主要用于構(gòu)建具有行業(yè)實(shí)力的企業(yè)Java應(yīng)用程序。JBuilder繼承了Borland公司開(kāi)發(fā)工具系列的優(yōu)秀特性,這使得用過(guò)Delphi,C++Builder 的程序員很容易過(guò)渡到JBuilder的開(kāi)發(fā)環(huán)境中。</p><p>  JBuilder實(shí)際上包括了用戶在Java集成開(kāi)發(fā)環(huán)境中所需要的一切東西。由于JBuilder和幾種單獨(dú)源代碼處理產(chǎn)品集成在一起的,所以它就能夠支持多種Java開(kāi)發(fā)工具包

88、版本。它對(duì)于JavaDoc的支持是無(wú)可挑剔的:JBuilder軟件能夠自動(dòng)生成JavaDoc文件。[7]</p><p>  3.2.2 SQL Server 2000</p><p>  SQL Server 2000是建立在 SQL Server 7.0 在可伸縮性、可用性、可管理性和數(shù)據(jù)倉(cāng)庫(kù)成功的基礎(chǔ)上,并且引入了針對(duì)電子商務(wù)的重要新功能。</p><p> 

89、 在高性能和企業(yè)級(jí)可伸縮性領(lǐng)域,SQL Server 2000 設(shè)計(jì)成利用 Windows 2000 對(duì)更多處理器、更大的系統(tǒng)內(nèi)存的支持,最終達(dá)到支持 64 位硬件平臺(tái)。在不斷提升可用性的努力過(guò)程中,SQL Server 2000 采用 Windows 2000 四路群集,提供了大大改進(jìn)的群集支持。SQL Server 7.0 已經(jīng)在可管理性和易用性方面在行業(yè)內(nèi)領(lǐng)先,SQL Server 2000 通過(guò)與 Windows 2000 活動(dòng)

90、目錄緊密結(jié)合進(jìn)一步改進(jìn)了這些功能。而且,SQL Server 2000 還包含對(duì)現(xiàn)有管理工具和實(shí)用程序的重大改進(jìn),并引入更具自我調(diào)節(jié)和自我管理的引擎功能。</p><p>  通過(guò)與 OLAP 服務(wù)、數(shù)據(jù)轉(zhuǎn)換服務(wù)、存儲(chǔ)庫(kù)和英文查詢的緊密結(jié)合,SQL Server 7.0 代表了行業(yè)內(nèi)最全面的數(shù)據(jù)倉(cāng)庫(kù)和決策支持平臺(tái)。SQL Server 2000 繼續(xù)了這種創(chuàng)新,在整個(gè)系統(tǒng)內(nèi)進(jìn)行了重要的改進(jìn)。特別重要的是,SQL

91、Server 2000 關(guān)系引擎增加了實(shí)質(zhì)化的視圖,改善了在特大型數(shù)據(jù)庫(kù)環(huán)境中執(zhí)行復(fù)雜查詢的性能。同時(shí),SQL Server 2000 引入了新的數(shù)據(jù)挖掘功能,可自動(dòng)發(fā)現(xiàn)在大量數(shù)據(jù)之間隱藏的關(guān)系并可基于歷史數(shù)據(jù)作出預(yù)測(cè)。這些數(shù)據(jù)挖掘功能將要實(shí)施,以向最終用戶隱藏這種尖端技術(shù)的復(fù)雜性,并允許開(kāi)發(fā)人員將第三方的數(shù)據(jù)挖掘產(chǎn)品輕松集成進(jìn)客戶的應(yīng)用程序中。最后,在電子商務(wù)領(lǐng)域,SQL Server 2000 高度集成了對(duì) XML 和通過(guò) Web

92、訪問(wèn)數(shù)據(jù)庫(kù)的支持。</p><p>  3.3數(shù)據(jù)庫(kù)類型的選定</p><p>  從上面的方法論證中,我們可以看出JDBC可以利用驅(qū)動(dòng)程序直接對(duì)SQL Server 進(jìn)行操作,這樣的操作比使用JDBC-ODBC橋要迅速而且簡(jiǎn)單。因?yàn)槲覀兪褂玫氖莏ava編程,直接使用JDBC可以更加方便,順暢,故本設(shè)計(jì)中使用JDBC。</p><p>  3.4數(shù)據(jù)庫(kù)的建立和連接&

93、lt;/p><p>  3.4.1 建立數(shù)據(jù)庫(kù)</p><p>  打開(kāi)SQL Server 2000,新建一個(gè)數(shù)據(jù)庫(kù) RFID_Server ,在其中建一名為 ProductInfo 的數(shù)據(jù)表。</p><p>  根據(jù)要求,該表有三列,分別是 RFIDNo , ProductName 和 Producer。其中 RFIDNo 為該表主鍵。其中RFIDNo是流通貨物的

94、唯一RFID碼,ProductName是該貨物的名稱,如可口可樂(lè),百事可樂(lè)等,Producer是該貨物的生產(chǎn)廠家,都設(shè)為不可為空。</p><p><b>  如圖3-1所示:</b></p><p>  圖3-1RFID_Server數(shù)據(jù)庫(kù)中ProductInfo表</p><p>  3.4.2 下載SQL Server 的驅(qū)動(dòng)程序并設(shè)置環(huán)

95、境變量</p><p>  在http://www.microsoft.com 下載msbase.jar, mssqlserver.jar, msutil.jar 三個(gè)包,并在classpath下添加環(huán)境變量。</p><p>  這三個(gè)包是Microsoft針對(duì)JDBC 對(duì)SQL Server 2000 操作的驅(qū)動(dòng)程序。</p><p>  3.4.3與數(shù)據(jù)庫(kù)連接

96、</p><p>  在建立好數(shù)據(jù)庫(kù)表后,下面要做的第一件事情是與想要使用的SQL Server 2000 建立一個(gè)連接,這包括兩個(gè)步驟:裝載驅(qū)動(dòng)程序并建立連接。</p><p>  裝載驅(qū)動(dòng)程序只需要非常簡(jiǎn)單的一行代碼。在這里,我們想要使用微軟的驅(qū)動(dòng)程序,可以用下列代碼裝載它:</p><p>  Class.forName("com.microsoft

97、.jdbc.sqlserver.SQLServerDriver").newInstance();</p><p>  這里其實(shí)不需要?jiǎng)?chuàng)建一個(gè)驅(qū)動(dòng)程序類的實(shí)例并且用DriverManager 登記它,因?yàn)檎{(diào)用Class。forName 將自動(dòng)加載驅(qū)動(dòng)程序類。如果自己創(chuàng)建實(shí)例,將創(chuàng)建一個(gè)不必要的副本,但它不會(huì)帶來(lái)什么壞處。</p><p>  加載Driver 類后, 它們即可用來(lái)與

98、數(shù)據(jù)庫(kù)建立連接。</p><p>  第二步就是用適當(dāng)?shù)尿?qū)動(dòng)程序類于SQL Server 2000建立一個(gè)連接。下列的代碼是一般的做法:</p><p>  Connection conn= DriverManager.getConnection(url,user,password);</p><p>  這個(gè)步驟也非常的簡(jiǎn)單,最難得是怎樣提供URL。如果正在使用J

99、DBC-ODBC橋,JDBC URL將以jdbc::odbc開(kāi)始,余下的URL通常是您的數(shù)據(jù)源名字或數(shù)據(jù)庫(kù)系統(tǒng)。因此,假設(shè)正在使用ODBC存取一個(gè)叫“Test”的ODBC數(shù)據(jù)源,您的JDBC URL 是jdbc::odbc:Test。把“name”及“Password”替換為您登陸DBMS的用戶名及口令。如果您登陸數(shù)據(jù)庫(kù)系統(tǒng)的用戶名為“TestUser”,口令為“jdbc”,只需下面的兩行代碼就可以建立一個(gè)連接:</p>

100、<p>  String url = “jdbc::odbc:Test”;</p><p>  Connection con=DriverManager。getConnection(url,”TestUser”,”jdbc”);</p><p>  但我們這里使用的是第三方開(kāi)發(fā)的JDBC驅(qū)動(dòng)程序,文檔將告訴您該使用什么subprotocol,就是在JDBC URL 中放在jdbc

101、后面的部分。例如,如果驅(qū)動(dòng)程序開(kāi)發(fā)者注冊(cè)了acme作為subprotocol,JDBC URL的第一和第二部分將是jdbc:acme。驅(qū)動(dòng)程序文檔也將告訴您余下JDBC URL 的格式。JDBC URL最后一部分提供了定位數(shù)據(jù)庫(kù)的信息。</p><p>  如果您裝載的驅(qū)動(dòng)程序識(shí)別了提供給DriverManager。getConnection的JDBC URL,那個(gè)驅(qū)動(dòng)程序?qū)⒏鶕?jù)JDBC URL 建立一個(gè)到SQL

102、 Server 2000的連接。正如名稱所示,DriverManager類在幕后為您管理建立連接的所有細(xì)節(jié)。除非您是正在寫(xiě)驅(qū)動(dòng)程序,可能無(wú)需使用此類的其他任何方法,一般需要在此類中直接使用的唯一方法是DriverManager.getConnection。</p><p>  DriverManager.getConnection方法返回一個(gè)打開(kāi)的連接,可以使用此連接創(chuàng)建statements并發(fā)送SQL語(yǔ)句到數(shù)據(jù)

103、庫(kù)。</p><p>  下面就是在程序中實(shí)際使用的打開(kāi)連接數(shù)據(jù)庫(kù)的代碼:</p><p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); /*加載驅(qū)動(dòng)程序*/</p>

104、<p>  String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=RFID_Server"; /*設(shè)定數(shù)據(jù)庫(kù)的路徑*/</p><p>  String user="sa";

105、 /*設(shè)定數(shù)據(jù)庫(kù)用戶名*/</p><p>  String password="sa"; /*設(shè)定數(shù)據(jù)庫(kù)密碼*/</p><p>  Connection conn= DriverManager。getConnection(url,user,password);</p><p>&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論