c-s圖書銷售管理系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 畢業(yè)設(shè)計(jì)(論文)題目:C-S圖書銷售管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)要求及原始數(shù)據(jù)(資料):1.綜述編寫目的程序的緣由及其所帶來的方便性;2.實(shí)地了解大中型書店在日常營業(yè)中對圖書的銷售、管理等方式;3.精確分析系統(tǒng)流程,同時(shí)構(gòu)建程序框架;4.熟練掌握C/S程序的編寫技術(shù),訓(xùn)練利用Java編寫客戶端程序的能力;5. 熟練掌握GUI等技術(shù),完成客戶端程序與數(shù)據(jù)庫

2、之間信息的傳遞;6. 訓(xùn)練數(shù)據(jù)封裝能力,減少程序中的冗余代碼;7.深入了解測試程序所用的黑盒法以及白盒法;8.訓(xùn)練檢索文獻(xiàn)資料和利用文獻(xiàn)資料的能力;9.訓(xùn)練撰寫技術(shù)文檔與學(xué)位論文的能力。</p><p> 畢業(yè)設(shè)計(jì)(論文)主要內(nèi)容:1.綜述圖書銷售管理系統(tǒng)在大中型書店應(yīng)用的前景;2.了解編寫C/S程序需要的相關(guān)技術(shù);3.熟練運(yùn)用編寫C/S程序的開發(fā)環(huán)境; 4.精確掌握程序開發(fā)需求并設(shè)計(jì)系統(tǒng)流程圖;5. 深入分析系

3、統(tǒng)流程,完成程序概要設(shè)計(jì)及劃分程序模塊;6.熟練運(yùn)用多種Java技術(shù)實(shí)現(xiàn)程序中的各個(gè)模塊并將其整合;7.熟練掌握測試用例的編寫,完成測試,生成測試報(bào)告。學(xué)生應(yīng)交出的設(shè)計(jì)文件(論文):1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計(jì)論文;2.包括畢業(yè)設(shè)計(jì)論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設(shè)計(jì)電子文檔及其它相關(guān)材料。</p><p>  C-S圖書銷售管理系統(tǒng)</p><p><b>

4、  摘 要</b></p><p>  隨著時(shí)代的進(jìn)步,科技的發(fā)展,計(jì)算機(jī)不但逐漸步入尋常百姓家庭,成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,而且在工業(yè)、農(nóng)業(yè)、商業(yè)等多領(lǐng)域起著巨大作用。計(jì)算機(jī)的廣泛應(yīng)用對提高經(jīng)濟(jì)效益、生活效率、實(shí)現(xiàn)管理現(xiàn)代化、科學(xué)化、智能化等方面起到了舉足輕重的作用,并且取得了顯著效果。</p><p>  基于C/S的圖書銷售管理系統(tǒng)是專為圖書銷售單位而設(shè)計(jì),它取

5、代了過去會計(jì)、出納的“賬本式”記錄與管理,在給工作人員帶來方便快捷的同時(shí)也大大提高了他們的工作效率,加快了管理步伐,避免了賬目混亂,任務(wù)繁重等問題,符合現(xiàn)代辦公的需求。</p><p>  本系統(tǒng)主要使用Java中的GUI(圖形用戶界面)和AWT編程,開發(fā)環(huán)境為Eclipse,數(shù)據(jù)庫采用MySQL5.0。整體框架采用三層架構(gòu)模式,即顯示層、業(yè)務(wù)層、數(shù)據(jù)層,大大降低了程序的耦合性。系統(tǒng)的主要功能包括:銷售管理、庫存

6、管理、書本管理、種類管理、出版社管理五大功能模塊,方便快捷地幫助書店管理人員實(shí)現(xiàn)了對圖書進(jìn)、存、銷三方面的管理。</p><p>  關(guān)鍵詞:圖書;銷售管理系統(tǒng);C/S結(jié)構(gòu)</p><p>  Book sales & management system based on C/S</p><p><b>  Abstract</b>&l

7、t;/p><p>  With the rapid development of science and technology,the computer not only gradually into the ordinary people family, become an indispensable part of People's Daily life, and in many fields such

8、as industry, agriculture, business plays a big role. Computer is widely used to improve the economic benefit, the life of efficiency, realize modernization management, scientific, intelligent, etc has played a pivotal ro

9、le, and achieved significant effect.</p><p>  Book sales & management system based on C/S is specially designed for book sales unit, it has replaced the past record of accountant and cashier "books&

10、quot; and the management, the staff to bring convenient at the same time also greatly improve their work efficiency, quicken the steps of the management, to avoid the chaos accounts, the problem such as onerous, meeting

11、the needs of the modern office.</p><p>  This system is mainly used in Java GUI (graphical user interface) and AWT programming, development environment for Eclipse, using MySQL5.0 database. Overall framework

12、 USES the three-tier architecture model, namely the display layer, business layer, data layer, greatly reduces the coupling of the program. System's main features include: sales management, inventory management, book

13、s management, category management, press five big function module, convenient and quick to help bookstore managers rea</p><p>  Keywords: Book;Sales & Management;C / S structure</p><p><b

14、>  目 錄</b></p><p><b>  摘 要i</b></p><p>  Abstractii</p><p><b>  1 緒論1</b></p><p>  1.1 課題背景1</p><p>  1.2 目的和意義1&

15、lt;/p><p>  1.3 開發(fā)工具及技術(shù)1</p><p>  1.3.1 開發(fā)工具1</p><p>  1.3.2 開發(fā)語言2</p><p>  1.3.3 開發(fā)結(jié)構(gòu)及模式3</p><p>  1.4 軟硬件需求3</p><p>  1.4.1 硬件需求3&l

16、t;/p><p>  1.4.2 軟件需求3</p><p><b>  2 需求分析4</b></p><p>  2.1 可行性分析4</p><p>  2.1.1 技術(shù)可行性4</p><p>  2.1.2 經(jīng)濟(jì)可行性4</p><p>  2.1

17、.3 操作可行性4</p><p>  2.1.4 法律可行性4</p><p>  2.2 系統(tǒng)流程圖4</p><p>  2.3 系統(tǒng)用戶用例圖5</p><p>  2.4 功能模塊需求分析5</p><p>  2.5 設(shè)計(jì)的基本思路6</p><p>  2.

18、6 性能需求6</p><p>  2.6.1 系統(tǒng)的易操作性6</p><p>  2.6.2 數(shù)據(jù)的正確性和完整性7</p><p>  2.6.3 數(shù)據(jù)的安全性7</p><p>  2.7 界面需求7</p><p>  3 系統(tǒng)分析與設(shè)計(jì)8</p><p>  

19、3.1 數(shù)據(jù)庫的分析與設(shè)計(jì)8</p><p>  3.1.1 數(shù)據(jù)庫的需求分析8</p><p>  3.1.2 數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)8</p><p>  3.1.3 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)11</p><p>  3.2 連接數(shù)據(jù)庫的前期準(zhǔn)備工作14</p><p>  3.2.1 編寫配置讀取

20、類14</p><p>  3.2.2 編寫JDBC操作類16</p><p>  3.2.3 創(chuàng)建數(shù)據(jù)轉(zhuǎn)換工具類17</p><p>  4 系統(tǒng)功能的實(shí)現(xiàn)19</p><p>  4.1 創(chuàng)建數(shù)據(jù)庫對象19</p><p>  4.2 管理員登陸頁面20</p><p>

21、;  4.3 設(shè)計(jì)父類21</p><p>  4.4 出版社管理模塊23</p><p>  4.5 書本管理模塊28</p><p>  4.6 銷售管理模塊35</p><p>  5 系統(tǒng)測試43</p><p>  5.1 系統(tǒng)測試目的與意義43</p><p>

22、;  5.2 測試過程43</p><p>  5.2.1 登錄模塊測試43</p><p>  5.2.2 銷售管理模塊測試44</p><p>  5.2.3 庫存管理模塊測試44</p><p>  5.2.4 書本管理模塊測試44</p><p><b>  結(jié) 論46<

23、/b></p><p><b>  參考文獻(xiàn)47</b></p><p><b>  致 謝48</b></p><p><b>  英文文獻(xiàn)原文49</b></p><p><b>  中文譯文55</b></p><

24、p><b>  1 緒論</b></p><p><b>  1.1 課題背景</b></p><p>  改革開放以來,我國經(jīng)濟(jì)迅速發(fā)展,科技日益更新,計(jì)算機(jī)以迅雷不及掩耳之勢覆蓋全球,大量實(shí)用軟件更是伴隨計(jì)算機(jī)語言產(chǎn)生而受到眾多領(lǐng)域的青睞。好的管理軟件能夠把大量的工作人員從繁重的手工工作中解脫出來,提高工作效率并減少錯誤的發(fā)生。調(diào)查

25、發(fā)現(xiàn),目前我國中小型書店仍采用手工方式對圖書進(jìn)行管理記錄,不僅工作量大、效率低,而且還容易出現(xiàn)數(shù)量不清、賬目混亂等問題,與現(xiàn)代辦公要求格格不入。</p><p>  中小型書店最繁重的工作就是圖書進(jìn)、存、銷三方面的工作,因此只需要設(shè)計(jì)一款簡單而實(shí)用的軟件,幫助書店工作人員輕松實(shí)現(xiàn)這三方面的工作?;靵y的界面,繁瑣的操作不僅難以達(dá)到輕松管理的目的,還容易使工作人員情緒暴躁,影響書店效益。因此,我的目標(biāo)是做一款界面清晰

26、,操作方便的簡單管理軟件。</p><p>  1.2 目的和意義</p><p>  圖書銷售管理系統(tǒng)開發(fā)的目的是為圖書銷售單位提供圖書信息管理和提高圖書銷售管理工作的效率。 </p><p>  圖書銷售管理系統(tǒng)是一個(gè)圖書銷售單位不可缺少的部分,它的內(nèi)容對于圖書銷售單位的決策者和管理者來說都至關(guān)重要,所以圖書銷售管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑?/p>

27、快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理數(shù)據(jù)信息,這種管理方式存在著許多缺點(diǎn),如:效率低、工作量大,另外時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少的困難。  </p><p>  作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對圖書銷售信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲量大、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高圖書

28、銷售管理工作的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。</p><p>  1.3 開發(fā)工具及技術(shù)</p><p>  本系統(tǒng)基于C/S結(jié)構(gòu)設(shè)計(jì),采用三層架構(gòu)體系,編寫系統(tǒng)主要用到Java中的GUI(圖形用戶界面)和AWT編程,開發(fā)環(huán)境為Eclipse,數(shù)據(jù)庫采用MySQL5.0并以Navicat for MySQL作為輔助工具。下面分別對C/S模型、三層架構(gòu)模式、GU

29、I、AWT編程、Eclipse、MySQL 5.0數(shù)據(jù)庫和Navicat for MySQL進(jìn)行簡要介紹。</p><p>  1.3.1 開發(fā)工具</p><p>  (1) Eclipse</p><p>  Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),通過安裝不同的插件Eclipse可以支持不同的計(jì)算機(jī)語言,比如C

30、++和Python等開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE.</p><p>  Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT 和PDE。Eclipse

31、項(xiàng)目IBM發(fā)起,圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個(gè)開放源碼項(xiàng)目,它其實(shí)是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開發(fā)各自的

32、插件,因此越來越受人們關(guān)注。隨后還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,Eclipse的目標(biāo)是成為可進(jìn)行任何語言開發(fā)的IDE集成者,使用者只需下載各種語言的插件即可。</p><p>  (2) MySQL 5.0</p><p>  MySQL 5.0是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。Mysql是最流行的關(guān)系型數(shù)據(jù)庫管理

33、系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由

34、于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。</p><p>  (3) Navicat for MySQL</p><p>  Navicat for MySQL是一款強(qiáng)大的 MySQL 數(shù)據(jù)庫管理和開發(fā)工具,它為專業(yè)開發(fā)者提供了一套強(qiáng)大的足夠尖端的工

35、具,但對于新用戶仍然易于學(xué)習(xí)。Navicat for MySQL 基于Windows平臺,為 MySQL 量身訂作,提供類似于 MySQL 的用管理界面工具。此解決方案的出現(xiàn),將解放 PHP、J2EE 等程序員以及數(shù)據(jù)庫設(shè)計(jì)者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。</p><p>  Navicat for MySQL 使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易

36、地創(chuàng)建、組織、存取和共享信息。 用戶可完全控制 MySQL 數(shù)據(jù)庫和顯示不同的管理資料,包括一個(gè)多功能的圖形化管理用戶和訪問權(quán)限的管理工具,方便將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local),進(jìn)行檔案備份。 Navicat for MySQL 支援 Unicode,以及本地或遠(yuǎn)程 MySQL 服務(wù)器多連線,用戶可瀏覽數(shù)據(jù)庫、建立和刪除數(shù)據(jù)庫、編輯

37、數(shù)據(jù)、建立或執(zhí)行 SQL queries、管理用戶權(quán)限(安全設(shè)定)、將數(shù)據(jù)庫備份/復(fù)原、匯入/匯出數(shù)據(jù)(支援 CSV, TXT, DBF 和 XML 檔案種類)等。軟件與任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 數(shù)據(jù)種類等的規(guī)范。</p><p>  1.3.2 開發(fā)語言</p><p>  主要使用Java語言

38、中的GUI(圖形用戶界面)和AWT(抽象窗口工具包)編程。</p><p><b>  (1) GUI</b></p><p>  圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口),即人機(jī)交互圖形化用戶界面設(shè)計(jì),是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于

39、接受。</p><p><b>  (2) AWT</b></p><p>  抽象窗口工具包(Abstract Windowing Toolkit,縮寫為AWT)是Java的平臺獨(dú)立的窗口系統(tǒng)圖形和用戶界面器件工具包。AWT 是Java基礎(chǔ)類 (JFC)的一部分,為Java程序提供圖形用戶界面(GUI)的標(biāo)準(zhǔn)API。 AWT提供了JavaApplet和Java Ap

40、plication中可用的用戶圖形界面GUI中的基本組件(components)。由于Java是一種獨(dú)立于平臺的程序設(shè)計(jì)語言,但GUI卻往往是依賴于特定平臺的,Java采用了相應(yīng)的技術(shù)使得AWT能提供給應(yīng)用程序獨(dú)立于機(jī)器平臺的接口,這保證了同一程序的GUI在不同機(jī)器上運(yùn)行具有類似的外觀。</p><p>  1.3.3 開發(fā)結(jié)構(gòu)及模式</p><p><b>  (1) C/S

41、結(jié)構(gòu)</b></p><p>  C/S 結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)

42、用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。</p><p>  (2) 三層架構(gòu)模式</p><p>  三層架構(gòu)模式即顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)層。其工作模式:顯示層往往面向操作者,主要用來接受數(shù)據(jù)、傳遞數(shù)據(jù)和顯示數(shù)據(jù);業(yè)務(wù)邏輯層主要是用來處理顯示層接收到的數(shù)據(jù)和數(shù)據(jù)庫中

43、的數(shù)據(jù);數(shù)據(jù)層主要用來對數(shù)據(jù)庫進(jìn)行操作,其中包括常見的增、刪、改、查等操作。采用三層架構(gòu)模式可以大大降低了程序的耦合性,符合現(xiàn)代軟件的標(biāo)準(zhǔn)。</p><p>  1.4 軟硬件需求</p><p>  1.4.1 硬件需求</p><p>  電腦:筆記本電腦或臺式電腦</p><p>  CPU:Pentium以上</p>

44、<p>  內(nèi)存: 512M以上</p><p>  1.4.2 軟件需求</p><p>  操作系統(tǒng)版本:Windows XP /vista/Win7</p><p>  開發(fā)工具:Eclipse</p><p><b>  開發(fā)語言:Java</b></p><p><b

45、>  2 需求分析</b></p><p>  2.1 可行性分析</p><p>  可行性研究主要內(nèi)容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟(jì)效益為核心,圍繞影響項(xiàng)目的各種因素,運(yùn)用大量的數(shù)據(jù)資料論證擬建項(xiàng)目是否可行。對整個(gè)可行性研究提出綜合分析評價(jià),指出優(yōu)缺點(diǎn)和建議以確定該項(xiàng)目是否可行。</p><p>  2.1.1 技術(shù)可行性<

46、;/p><p>  本系統(tǒng)開發(fā)工具是Eclipse和MySQL數(shù)據(jù)庫,開發(fā)語言是Java,java是一種面向?qū)ο缶幊陶Z言,簡單易學(xué)而且靈活方便。數(shù)據(jù)庫的設(shè)計(jì)和操作是本系統(tǒng)設(shè)計(jì)的核心,但在Navicat for MySQL的幫助下能夠輕松便捷的對數(shù)據(jù)庫進(jìn)行操作。此外,大學(xué)期間學(xué)習(xí)過數(shù)據(jù)庫操作語言,軟件測試,UML統(tǒng)一建模語言等課程使系統(tǒng)分析、設(shè)計(jì)和測試不再成為難題。因此,完成系統(tǒng)實(shí)現(xiàn)在技術(shù)上完全具有可行性。</p

47、><p>  2.1.2 經(jīng)濟(jì)可行性</p><p>  開發(fā)此項(xiàng)目用到的軟件都是開源的,為開發(fā)軟件節(jié)省了大量的金錢,達(dá)到了低成本的目的。另外,本系統(tǒng)對計(jì)算機(jī)配置的要求不高,幾乎每個(gè)家庭中可使用的電腦都能滿足。因此,開發(fā)該系統(tǒng)在經(jīng)濟(jì)上是完全可行的。</p><p>  2.1.3 操作可行性</p><p>  該系統(tǒng)是本著界面簡潔、操作方便

48、的目的進(jìn)行開發(fā),主要目的是幫助圖書銷售商對圖書進(jìn)行進(jìn)、存、銷三方面管理。因此該系統(tǒng)在操作上具有功能簡單,操作簡潔的優(yōu)勢,完全可行。</p><p>  2.1.4 法律可行性</p><p>  由于在開發(fā)過程中所使用的軟件都是開源軟件,不存在侵權(quán)問題。此外,開發(fā)該系統(tǒng)的目的僅僅是作為一款管理軟件應(yīng)用于圖書銷售單位,不存在與國家法律不符的目的綜上所述,該系統(tǒng)的開發(fā)在法律方面也是可行的。&

49、lt;/p><p>  2.2 系統(tǒng)流程圖</p><p>  圖2.1 系統(tǒng)流程圖</p><p>  如圖2.1所示,由于系統(tǒng)是C/S模式,所以無需注冊等操作,只需要在編程時(shí)將用戶名和密碼設(shè)定,如客戶對用戶名和密碼有特殊要求,由編程人員將客戶要求的用戶名和密碼事先輸入程序當(dāng)中,如本系統(tǒng)的用戶名和密碼都為yujian,該數(shù)據(jù)已經(jīng)在數(shù)據(jù)庫的T_USER表事先存好。如果

50、客戶輸入錯誤,則要重新回到登錄頁面輸入正確的賬號密碼。如果輸入正確,則可以進(jìn)入用戶操作頁面進(jìn)行相應(yīng)的操作。在進(jìn)一系列的操作之后然后點(diǎn)擊關(guān)閉按鈕,即可退出系統(tǒng)。</p><p>  2.3 系統(tǒng)用戶用例圖</p><p>  系統(tǒng)只涉及圖書的進(jìn)、存、銷三方面的功能,其所對應(yīng)的功能模塊分別是圖書管理模塊、庫存管理模塊、銷售管理模塊。此外,為方便用戶在這三方面的操作更加簡潔增加了出版社管理模塊

51、,種類管理模塊,這樣做一方面能夠使用戶界面簡單易用,另一方面能夠使用戶在主要使用的三個(gè)重要界面有更多的選擇而不是去輸入,減少了錯誤發(fā)生的概率。</p><p>  管理員即能夠正確輸入用戶名和密碼的操作人員,且其享有全部權(quán)限。因此管理員用例圖十分清晰明了,如圖2.2。</p><p>  圖2.2 管理員用例圖</p><p>  圖2.2清晰明了的告訴我們用戶登錄

52、是前提,只有用戶經(jīng)過正確的身份驗(yàn)證才可以操作本系統(tǒng)幾個(gè)最重要的操作頁面。</p><p>  2.4 功能模塊需求分析</p><p>  本系統(tǒng)本著界面簡潔大方,操作簡單的原則實(shí)現(xiàn)以下功能:</p><p>  1.系統(tǒng)界面清晰分明、簡單易用,管理人員能夠在短時(shí)間內(nèi)熟練操作。</p><p>  2.管理員享有銷售管理、庫存管理、圖書管理

53、、出版社管理、種類管理五大權(quán)限。</p><p>  3.盡可能的讓用戶去選擇,而不是輸入,減少錯誤發(fā)生的概率。</p><p>  4.增加主要功能的快捷鍵,增加操作的簡易性。</p><p>  系統(tǒng)的功能結(jié)構(gòu)圖,如圖2.3。</p><p>  圖2.3 系統(tǒng)功能模塊圖</p><p>  從圖2.3中可以看到,

54、系統(tǒng)分為六個(gè)模塊,分別是管理人員登錄模塊,銷售管理模塊,入庫管理模塊,圖書管理模塊,種類管理模塊和出版社管理模塊,其中登錄模塊并不與其它模塊相平行,登錄模塊只是決定操作人員是否有權(quán)限去操作其它五大模塊。</p><p>  2.5 設(shè)計(jì)的基本思路</p><p>  設(shè)計(jì)思路遵循以下幾點(diǎn):</p><p>  1. 考慮到圖書銷售單位只是簡單的對圖書進(jìn)行管理、記錄

55、,因此軟件采用C/S結(jié)構(gòu),C/S結(jié)構(gòu)的優(yōu)點(diǎn)是客戶端響應(yīng)速度快,能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。</p><p>  2. 采用三層架構(gòu)模式。一方面能夠使開發(fā)人員的邏輯思維清晰,提高軟件開發(fā)效率,另一方面降低了程序的耦合性,例如本程序如果要開發(fā)成為B/S結(jié)構(gòu)只需要改動業(yè)務(wù)邏輯層即可。</p><p>  3. 模塊化設(shè)計(jì)。模塊化設(shè)計(jì)要求將整個(gè)系統(tǒng)劃分

56、成基于小的模塊,有利于代碼的重載,簡化設(shè)計(jì)和實(shí)現(xiàn)過程。</p><p>  4. 效率第一。設(shè)計(jì)該系統(tǒng)的目的是讓大量工作人員從繁瑣的工作中解脫出來,因此本系統(tǒng)必須達(dá)到提高工作效率的目的。</p><p>  5.界面清晰明了,操作簡單。方便用戶使用,讓用戶能夠在最短時(shí)間輕松方便的適應(yīng)系統(tǒng)的操作。</p><p>  7.系統(tǒng)設(shè)計(jì)不僅要功能完善還要突出重點(diǎn)。要符合設(shè)計(jì)

57、需求,在有可能改進(jìn)的地方進(jìn)行擴(kuò)充,使系統(tǒng)更適應(yīng)用戶的需要。</p><p><b>  2.6 性能需求</b></p><p>  2.6.1 系統(tǒng)的易操作性</p><p>  為使工作人員能夠輕松操作該系統(tǒng),需做到以下要求:</p><p>  1.操作界面不涉及跳轉(zhuǎn),要操作的界面覆蓋已顯示的界面。</p

58、><p>  2.主要功能界面盡可能的讓用戶去選擇,而不是輸入。</p><p>  3.部分系統(tǒng)設(shè)計(jì)加入自動計(jì)算功能,且不可更改。</p><p>  4.在操作發(fā)生錯誤時(shí)出現(xiàn)友好提示。</p><p>  2.6.2 數(shù)據(jù)的正確性和完整性</p><p>  1.數(shù)據(jù)庫設(shè)計(jì)過程中明確哪些數(shù)據(jù)可以為空,哪些數(shù)據(jù)不能為空

59、。</p><p>  2.關(guān)系表中的相關(guān)數(shù)據(jù)必須明確統(tǒng)一。</p><p>  3.具有自動判斷功能,如銷售數(shù)量大于庫存數(shù)量時(shí)應(yīng)給出友好的錯誤提示。</p><p>  4.具有自動加、減、乘功能,保證單價(jià)、總量等數(shù)據(jù)的正確性。</p><p>  5.交易日期根據(jù)系統(tǒng)時(shí)間而顯示、記錄,且不可更改。</p><p>

60、  2.6.3 數(shù)據(jù)的安全性</p><p>  只有被授權(quán)的管理人員,即知道賬戶和密碼的人才可進(jìn)入系統(tǒng)。</p><p><b>  2.7 界面需求</b></p><p>  界面設(shè)計(jì)是整個(gè)設(shè)計(jì)很重要的一部分,好的界面不僅方便管理人員操作,還可以使操作人員有一個(gè)陽光的心情,提高工作人員工作效率,因此界面的設(shè)計(jì)必須滿足以下幾點(diǎn)要求:&l

61、t;/p><p><b>  1.簡易性</b></p><p>  界面的簡潔是讓用戶便于了解,便于使用,并能減少用戶發(fā)生錯誤選擇的可能性。</p><p><b>  2.用戶語言</b></p><p>  界面中要使用能反應(yīng)用戶本身的語言,而不是程序員的語言。</p><p&

62、gt;<b>  3.記憶負(fù)擔(dān)最小化</b></p><p>  人腦不是電腦,在設(shè)計(jì)界面時(shí)必須要考慮大腦處理信息的限度。人類的短期記憶極不穩(wěn)定,且有限,24小時(shí)內(nèi)存在25%的遺忘率。所以對用戶來說,瀏覽信息要比記憶更加重要。</p><p><b>  4.一致性</b></p><p>  一致性是每個(gè)優(yōu)秀界面都具備的

63、特點(diǎn)。界面的結(jié)構(gòu)必須清晰且一致,與客戶的需求一致。</p><p><b>  5.清楚</b></p><p>  視覺上便于理解與使用。</p><p><b>  6.用戶熟悉程度</b></p><p>  用戶可通過已掌握的知識來使用界面,但不應(yīng)超出一般常識。</p><

64、;p><b>  7.人性化</b></p><p>  高效率和用戶滿意度是人性化的體現(xiàn)。想用戶所想,做用戶所做,用戶總是按照他們自己的方法理解和使用。</p><p><b>  8.安全性</b></p><p>  用戶做出危險(xiǎn)的選擇使有信息介入系統(tǒng)的提示。</p><p>  3

65、系統(tǒng)分析與設(shè)計(jì)</p><p>  3.1 數(shù)據(jù)庫的分析與設(shè)計(jì)</p><p>  數(shù)據(jù)庫是整個(gè)系統(tǒng)的各個(gè)部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在,因此數(shù)據(jù)庫是系統(tǒng)的核心和基礎(chǔ)。的計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫為核心,在數(shù)據(jù)庫管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。數(shù)據(jù)庫設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的質(zhì)量和效率。</p><p&

66、gt;  數(shù)據(jù)庫的設(shè)計(jì)一般經(jīng)過需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)4個(gè)步驟。</p><p>  3.1.1 數(shù)據(jù)庫的需求分析</p><p>  首先可以確定需要一個(gè)用戶表,其中儲存的數(shù)據(jù)有用戶名和密碼,以作驗(yàn)證之用。其次,系統(tǒng)相關(guān)的表,從最基礎(chǔ)開始,有出版社表、書的類型表、書表、入庫記錄表和銷售記錄表,其中,一條入庫記錄中涉及多本書,一條銷售記錄也涉及多本書,因此還需要書的入庫記錄

67、表和書的銷售記錄表,一條書的入庫記錄對應(yīng)一本書,該條書的入庫記錄屬于某一條入庫記錄,可以理解成這是書與入庫記錄的關(guān)系表,同樣地,書的銷售記錄與書的入庫記錄一樣。</p><p>  3.1.2 數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)</p><p>  概念設(shè)計(jì)是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個(gè)系統(tǒng)的數(shù)據(jù)庫概念結(jié)構(gòu),從用戶的角度進(jìn)行視圖設(shè)計(jì),然后將視圖集成,最后對集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。&l

68、t;/p><p>  數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)采用實(shí)體—聯(lián)系(E-R)模型設(shè)計(jì)方法。E-R模型用E-R圖表示,E-R模型法的組成元素有:實(shí)體、屬性、聯(lián)系。下面簡單介紹這三種組成元素:</p><p>  1.實(shí)體(Entity):客觀存在并可相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是具體的人、事、物,例如一名學(xué)生,一門課程等;也可以是抽象的概念或聯(lián)系,例如一次選課,一場競賽等。</p>&l

69、t;p>  2.屬性(Attribute):每個(gè)實(shí)體都有自己的一組特征或性質(zhì),這種用來描述實(shí)體的特征或性質(zhì)稱為實(shí)體的屬性。例如,學(xué)生實(shí)體具有學(xué)號、姓名、性別等屬性。不同實(shí)體的屬性是不同的。實(shí)體屬性的某一組特定的取值(稱為屬性值)確定了一個(gè)特定的實(shí)體。例如,學(xué)號是0611001、姓名是王冬、性別是女等等,這些屬性值綜合起來就確定了“王冬”這名同學(xué)。屬性的可能取值范圍稱為屬性域,也稱為屬性的值域。例如,學(xué)號的域?yàn)?位整數(shù),姓名的域?yàn)樽?/p>

70、符串集合,性別的域?yàn)椋?,女)。?shí)體的屬性值是數(shù)據(jù)庫中存儲的主要數(shù)據(jù)。</p><p>  3.聯(lián)系(Relation):現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間不是孤立的,是有聯(lián)系的,這些聯(lián)系反映在信息世界中表現(xiàn)為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系。</p><p>  概念設(shè)計(jì)的目標(biāo)是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨(dú)立于數(shù)據(jù)庫的DBMS,不依賴

71、于計(jì)算機(jī)系統(tǒng)的,</p><p>  根據(jù)以上對數(shù)據(jù)庫的需求分析,并結(jié)合系統(tǒng)概念模型的特點(diǎn)及建立方法,建立E-R模型圖,其中用矩形表示實(shí)體,橢圓形表示屬性,棱形表示實(shí)體間關(guān)系。</p><p>  本系統(tǒng)概念設(shè)計(jì)圖有:</p><p>  圖3.1 管理員實(shí)體E-R圖</p><p>  圖3.1所示為管理員信息的E-R圖,其中包括的信息有I

72、D、用戶名和密碼,ID是隱藏列,作為主鍵。用戶名和密碼作為是否有權(quán)操作系統(tǒng)的驗(yàn)證信息儲存在數(shù)據(jù)庫當(dāng)中。</p><p>  圖3.2 出版社實(shí)體E-R圖</p><p>  圖3.2是出版社信息的E-R圖,主要包括出版社名稱、聯(lián)系人、聯(lián)系電話、簡介四方面,存儲這些信息的主要目的是方便圖書管理人員聯(lián)系出版社以進(jìn)行進(jìn)退貨的協(xié)商。</p><p>  圖3.3 書本信息實(shí)

73、體E-R圖</p><p>  圖3.3為書本信息的E-R圖,主要包括的信息有書名、作者、單價(jià)、縮略圖和庫存數(shù)量。書名、單價(jià)和作者是由操作人員輸入并儲存在數(shù)據(jù)庫當(dāng)中的。庫存數(shù)量是當(dāng)前書本的數(shù)目,當(dāng)數(shù)目發(fā)生改變時(shí),數(shù)據(jù)會自動更新。</p><p>  圖3.4 種類信息實(shí)體E-R圖</p><p>  圖3.4是種類信息的E-R圖,主要包括種類名稱、簡介兩部分信息。由

74、于種類管理頁面是作為圖書管理頁面的輔助頁面設(shè)計(jì)的,其數(shù)據(jù)庫中的信息也是為圖書管理信息設(shè)計(jì)的。</p><p>  圖3.5 入庫信息實(shí)體E-R圖</p><p>  圖3.5是入庫信息的E-R圖,因?yàn)閹齑婀芾眄撁嬗袀€(gè)按日期查詢?nèi)霂煨畔⒌墓δ埽瑸榇?,需要設(shè)計(jì)一個(gè)記錄入庫日期的數(shù)據(jù)庫。</p><p>  圖3.6 交易信息實(shí)體E-R圖</p><p

75、>  圖3.6是交易信息的E-R圖,設(shè)計(jì)這樣一個(gè)數(shù)據(jù)的目的同設(shè)計(jì)入庫信息的目的是一樣的,都是為了方面管理人員進(jìn)行查詢。</p><p>  圖3.7 書的入庫信息實(shí)體E-R圖</p><p>  如圖3.7,書的入庫信息不同于入庫信息,書的入庫信息包括入庫書本的名稱、入庫數(shù)量和相關(guān)的入庫記錄三方面的信息。入庫管理信息頁面中按日期查詢?nèi)霂煊涗浰樵兊降膬?nèi)容正是此數(shù)據(jù)中記錄的相關(guān)信息。&

76、lt;/p><p>  圖3.8 銷售信息實(shí)體E-R圖</p><p>  圖3.8是銷售信息的E-R圖,與圖3.7相似,這個(gè)數(shù)據(jù)庫的設(shè)計(jì)主要是保存銷售的書本、數(shù)量和當(dāng)天的銷售記錄信息,其主要目的一方面是記錄,另一方面是方便管路人員查詢。</p><p>  3.1.3 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  由于數(shù)據(jù)庫概念模型獨(dú)立于任何特定

77、的數(shù)據(jù)庫管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫模型轉(zhuǎn)換應(yīng)遵循下列原則:</p><p>  1.每一個(gè)實(shí)體要轉(zhuǎn)換成一個(gè)關(guān)系</p><p>  2.所有的主鍵必須定義非空(NOT NULL)</p><p>  3.對于二元聯(lián)系應(yīng)按照一對多、弱對實(shí)、一對一、多對多等聯(lián)系來定義外鍵

78、。</p><p>  根據(jù)E-R模型,圖書管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說明:</p><p>  1.管理員信息表只記錄賬戶與密碼,以便登錄用。表結(jié)構(gòu)如表3.1所示。</p><p>  表3.1 管理員信息表(t_user)</p><p>  2.種類信息表主要是記錄了書的種類的基本信息,表結(jié)構(gòu)如表3.2所示。&

79、lt;/p><p>  表3.2 書的種類信息表(t_book_type)</p><p>  3.出版社信息表主要是記錄了出版社的相關(guān)信息,表結(jié)構(gòu)如圖3.3所示。</p><p>  表3.3 出版社信息表(t_publisher)</p><p>  4.書本信息表主要記錄了與書相關(guān)的所有內(nèi)容,表結(jié)構(gòu)如表3.4示。</p>&l

80、t;p>  表3.4 書本信息表(t_book)</p><p>  5.交易記錄表, 一個(gè)交易記錄包括多個(gè)書的銷售記錄, 一次交易可能有多本書,表結(jié)構(gòu)如表3.5示。</p><p>  表3.5 書本交易信息表(t_sale_record)</p><p>  6.書的銷售記錄, 一條記錄對應(yīng)一本書,表結(jié)構(gòu)如表3.6示。</p><p&g

81、t;  表3.6 書本信息表(t_book_sale_record)</p><p>  7.入庫記錄表, 一次入庫會入多本書,表結(jié)構(gòu)如表3.7所示。</p><p>  表3.7 入庫記錄表表(t_book_sale_record)</p><p>  8.書的入庫記錄表, 其中包括入庫的書、對應(yīng)的入庫記錄、入庫數(shù)量等信息,表結(jié)構(gòu)如表3.8所示。</p>

82、;<p>  表3.8 入庫記錄表表(t_book_in_record)</p><p>  3.2 連接數(shù)據(jù)庫的前期準(zhǔn)備工作</p><p>  數(shù)據(jù)庫中的表已經(jīng)建好,在系統(tǒng)功能實(shí)現(xiàn)時(shí)只需要建立每個(gè)表相對應(yīng)的類即可,要使客戶對書本的管理信息存入數(shù)據(jù)庫就必須將數(shù)據(jù)庫與程序聯(lián)系起來。為此,需要做一些工作將數(shù)據(jù)庫“嵌入”系統(tǒng)之中。</p><p>  3

83、.2.1 編寫配置讀取類</p><p>  連接數(shù)據(jù)庫就要先做數(shù)據(jù)庫相關(guān)的一些配置,例如對應(yīng)數(shù)據(jù)庫的相關(guān)驅(qū)動、數(shù)據(jù)庫地址、用戶名和密碼,然后可以放到配置文件中,如果需要更換數(shù)據(jù)庫或者地址,只需要修改這份配置文件即可。</p><p>  建立配置文件jdbc.properties,內(nèi)容如下:</p><p><b>  //JDBC驅(qū)動</b&g

84、t;</p><p>  jdbc.driver=com.mysql.jdbc.Driver</p><p><b>  //連接地址</b></p><p>  jdbc.url=jdbc:mysql://localhost:3306/book_system</p><p><b>  //數(shù)據(jù)庫用戶名<

85、;/b></p><p>  jdbc.user=yujian</p><p><b>  //密碼</b></p><p>  jdbc.pass=yujian</p><p>  建立好該文件后,再編寫類去讀取該文件,獲得所需要的值即可。用于讀取配置的PropertiesUtil類,代碼如下:</p>

86、;<p>  public class PropertiesUtil {</p><p>  //該記錄所對應(yīng)的書的銷售數(shù)量</p><p>  private static Properties properties = new Properties();</p><p>  private static String CONFIG = "

87、/cfg/jdbc.properties";//配置文件的路徑</p><p>  //讀取資源文件, 設(shè)置輸入流</p><p>  private staitc InputStream is =propertiesUtil.class.</p><p>  getResourceAsStream(CONFIG);</p><p&

88、gt;  public static String JDBC_DRIVER; //數(shù)據(jù)庫驅(qū)動</p><p>  public static String JDBC_URL; //jdbc連接url</p><p>  public static String JDBC_USER; //數(shù)據(jù)庫用戶名</p><p>  public static String JD

89、BC_PASS; //數(shù)據(jù)庫密碼</p><p><b>  static {</b></p><p>  properties.load(is); //加載輸入流</p><p>  //獲得配置的各個(gè)屬性</p><p>  JDBC_DRIVER = properties.getProperty("jdb

90、c.driver");</p><p>  JDBC_URL = properties.getProperty("jdbc.url");</p><p>  JDBC_USER = properties.getProperty("jdbc.user");</p><p>  JDBC_PASS = propertie

91、s.getProperty("jdbc.pass");</p><p><b>  }</b></p><p><b>  }</b></p><p>  public class PropertiesUtil {</p><p>  //該記錄所對應(yīng)的書的銷售數(shù)量</p&

92、gt;<p>  private static Properties properties = new Properties();</p><p>  private static String CONFIG = "/cfg/jdbc.properties";//配置文件的路徑</p><p>  //讀取資源文件, 設(shè)置輸入流</p>&l

93、t;p>  private staitc InputStream is =propertiesUtil.class.</p><p>  getResourceAsStream(CONFIG);</p><p>  public static String JDBC_DRIVER; //數(shù)據(jù)庫驅(qū)動</p><p>  public static Strin

94、g JDBC_URL; //jdbc連接url</p><p>  public static String JDBC_USER; //數(shù)據(jù)庫用戶名</p><p>  public static String JDBC_PASS; //數(shù)據(jù)庫密碼</p><p><b>  static {</b></p><p> 

95、 properties.load(is); //加載輸入流</p><p>  //獲得配置的各個(gè)屬性</p><p>  JDBC_DRIVER = properties.getProperty("jdbc.driver");</p><p>  JDBC_URL = properties.getProperty("jdbc.url&

96、quot;);</p><p>  JDBC_USER = properties.getProperty("jdbc.user");</p><p>  JDBC_PASS = properties.getProperty("jdbc.pass");</p><p><b>  }</b></p&g

97、t;<p><b>  }</b></p><p>  3.2.2 編寫JDBC操作類</p><p>  JDBC是Java Data Base Connectivity的簡稱,是Java中進(jìn)行數(shù)據(jù)庫連接的技術(shù)。JDBC的API提供了標(biāo)準(zhǔn)統(tǒng)一的SQL數(shù)據(jù)存取接口,可以讓程序員不需要關(guān)心如何去連接不同的數(shù)據(jù)庫,只需為不同的數(shù)據(jù)庫提供不同的驅(qū)動,就可以達(dá)

98、到連接不同數(shù)據(jù)庫的要求。</p><p>  配置好了之后,開始著手編寫數(shù)據(jù)庫的操作類,首先肯定是幫我們進(jìn)行數(shù)據(jù)庫連接,我們之前配置了連接的相關(guān)屬性,接著我們需要這個(gè)類幫我們提供查詢、執(zhí)行SQL等功能。確定好目標(biāo)后,開始編寫。</p><p>  新建JDBCExecutor類,該類具有屬性如下:</p><p>  private static String DR

99、IVER = PropertiesUtil.JDBC_DRIVER; //獲得驅(qū)動</p><p>  private static String URL = PropertiesUtil.JDBC_URL; //獲得url</p><p>  //獲得連接數(shù)據(jù)庫的用戶名</p><p>  private static String USER = Properti

100、esUtil.JDBC_USER;</p><p>  //獲得連接數(shù)據(jù)庫的密碼</p><p>  private static String PASS = PropertiesUtil.JDBC_PASS;</p><p>  private Connection connection; //連接對象</p><p>  private

101、static JDBCExecutor jdbcExecutor; //維護(hù)一個(gè)本類型的對象</p><p>  private Statement stmt; //維護(hù)一個(gè)本類型的對象</p><p>  private static String DRIVER = PropertiesUtil.JDBC_DRIVER; //獲得驅(qū)動</p><p>  priv

102、ate static String URL = PropertiesUtil.JDBC_URL; //獲得url</p><p>  //獲得連接數(shù)據(jù)庫的用戶名</p><p>  private static String USER = PropertiesUtil.JDBC_USER;</p><p>  //獲得連接數(shù)據(jù)庫的密碼</p><

103、p>  private Connection connection; //連接對象</p><p>  private static String PASS = PropertiesUtil.JDBC_PASS; </p><p>  private static JDBCExecutor jdbcExecutor; //維護(hù)一個(gè)本類型的對象</p><p>

104、  private Statement stmt; //維護(hù)一個(gè)本類型的對象</p><p>  注:由于創(chuàng)建一個(gè)Connection對象需要耗費(fèi)很大的資源,因此使用單態(tài)模式,讓JDBCExecutor類維護(hù)一個(gè)JDBCExecutor對象,可以在構(gòu)造器中創(chuàng)建Connection,由于JDBCExecutor是單態(tài)的,因此可以保證在應(yīng)用中只創(chuàng)建一個(gè)Connection。</p><p> 

105、 然后在JDBCExecutor的構(gòu)造器中創(chuàng)建各個(gè)對象,再提供一個(gè)方法返回JDBCExecutor的實(shí)例。</p><p>  private JDBCExecutor() {</p><p>  //初始化JDBC驅(qū)動并讓驅(qū)動加載到j(luò)vm中</p><p>  Class.forName(DRIVER);</p><p><b>

106、  //創(chuàng)建數(shù)據(jù)庫連接</b></p><p>  connection = DriverManager.getConnection(URL, USER, PASS);</p><p>  //創(chuàng)建Statement對象</p><p>  stmt = connection.createStatement();</p><p>

107、<b>  }</b></p><p>  public static JDBCExecutor getJDBCExecutor() {</p><p>  //如果本類所維護(hù)jdbcExecutor屬性為空,則調(diào)用私有的構(gòu)造器獲得實(shí)例</p><p>  if (jdbcExecutor == null) jdbcExecutor = new

108、 JDBCExecutor();</p><p>  return jdbcExecutor;</p><p><b>  }</b></p><p>  private JDBCExecutor() {</p><p>  //初始化JDBC驅(qū)動并讓驅(qū)動加載到j(luò)vm中</p><p>  Cla

109、ss.forName(DRIVER);</p><p><b>  //創(chuàng)建數(shù)據(jù)庫連接</b></p><p>  connection = DriverManager.getConnection(URL, USER, PASS);</p><p>  //創(chuàng)建Statement對象</p><p>  stmt = c

110、onnection.createStatement();</p><p><b>  }</b></p><p>  public static JDBCExecutor getJDBCExecutor() {</p><p>  //如果本類所維護(hù)jdbcExecutor屬性為空,則調(diào)用私有的構(gòu)造器獲得實(shí)例</p><p&

111、gt;  if (jdbcExecutor == null) jdbcExecutor = new JDBCExecutor();</p><p>  return jdbcExecutor;</p><p><b>  }</b></p><p>  最后只需要編寫一些簡單查詢功能,并把查詢后的結(jié)果保存在一個(gè)對象中即可:</p>

112、<p>  public ResultSet executeQuery(String sql) {</p><p>  //利用Statement對象執(zhí)行參數(shù)的sql</p><p>  ResultSet result = stmt.executeQuery(sql);</p><p>  return result;</p><p

113、><b>  }</b></p><p>  public int executeUpdate(String sql) {</p><p>  int result = -1;</p><p><b>  //執(zhí)行SQL語句</b></p><p>  stmt.executeUpdate(s

114、ql);</p><p><b>  //獲得主鍵</b></p><p>  ResultSet rs = stmt.getGeneratedKeys();</p><p>  while(rs.next()) result = rs.getInt(1); //返回最后一個(gè)主鍵</p><p>  rs.close()

115、;</p><p>  return result;</p><p><b>  }</b></p><p>  3.2.3 創(chuàng)建數(shù)據(jù)轉(zhuǎn)換工具類</p><p>  DBCExecutor中提供了一個(gè)executeQuery方法,該方法返回ResultSet對象,需要對該結(jié)果集進(jìn)行一些封裝。因此需要創(chuàng)建一個(gè)工具類,對該

溫馨提示

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

評論

0/150

提交評論