版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)</p><p> 畢業(yè)設(shè)計(jì)(論文)題目:C-S圖書(shū)銷(xiāo)售管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)要求及原始數(shù)據(jù)(資料):1.綜述編寫(xiě)目的程序的緣由及其所帶來(lái)的方便性;2.實(shí)地了解大中型書(shū)店在日常營(yíng)業(yè)中對(duì)圖書(shū)的銷(xiāo)售、管理等方式;3.精確分析系統(tǒng)流程,同時(shí)構(gòu)建程序框架;4.熟練掌握C/S程序的編寫(xiě)技術(shù),訓(xùn)練利用Java編寫(xiě)客戶端程序的能力;5. 熟練掌握GUI等技術(shù),完成客戶端程序與數(shù)據(jù)庫(kù)
2、之間信息的傳遞;6. 訓(xùn)練數(shù)據(jù)封裝能力,減少程序中的冗余代碼;7.深入了解測(cè)試程序所用的黑盒法以及白盒法;8.訓(xùn)練檢索文獻(xiàn)資料和利用文獻(xiàn)資料的能力;9.訓(xùn)練撰寫(xiě)技術(shù)文檔與學(xué)位論文的能力。</p><p> 畢業(yè)設(shè)計(jì)(論文)主要內(nèi)容:1.綜述圖書(shū)銷(xiāo)售管理系統(tǒng)在大中型書(shū)店應(yīng)用的前景;2.了解編寫(xiě)C/S程序需要的相關(guān)技術(shù);3.熟練運(yùn)用編寫(xiě)C/S程序的開(kāi)發(fā)環(huán)境; 4.精確掌握程序開(kāi)發(fā)需求并設(shè)計(jì)系統(tǒng)流程圖;5. 深入分析系
3、統(tǒng)流程,完成程序概要設(shè)計(jì)及劃分程序模塊;6.熟練運(yùn)用多種Java技術(shù)實(shí)現(xiàn)程序中的各個(gè)模塊并將其整合;7.熟練掌握測(cè)試用例的編寫(xiě),完成測(cè)試,生成測(cè)試報(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圖書(shū)銷(xiāo)售管理系統(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)用對(duì)提高經(jīng)濟(jì)效益、生活效率、實(shí)現(xiàn)管理現(xiàn)代化、科學(xué)化、智能化等方面起到了舉足輕重的作用,并且取得了顯著效果。</p><p> 基于C/S的圖書(shū)銷(xiāo)售管理系統(tǒng)是專為圖書(shū)銷(xiāo)售單位而設(shè)計(jì),它取
5、代了過(guò)去會(huì)計(jì)、出納的“賬本式”記錄與管理,在給工作人員帶來(lái)方便快捷的同時(shí)也大大提高了他們的工作效率,加快了管理步伐,避免了賬目混亂,任務(wù)繁重等問(wèn)題,符合現(xiàn)代辦公的需求。</p><p> 本系統(tǒng)主要使用Java中的GUI(圖形用戶界面)和AWT編程,開(kāi)發(fā)環(huán)境為Eclipse,數(shù)據(jù)庫(kù)采用MySQL5.0。整體框架采用三層架構(gòu)模式,即顯示層、業(yè)務(wù)層、數(shù)據(jù)層,大大降低了程序的耦合性。系統(tǒng)的主要功能包括:銷(xiāo)售管理、庫(kù)存
6、管理、書(shū)本管理、種類(lèi)管理、出版社管理五大功能模塊,方便快捷地幫助書(shū)店管理人員實(shí)現(xiàn)了對(duì)圖書(shū)進(jìn)、存、銷(xiāo)三方面的管理。</p><p> 關(guān)鍵詞:圖書(shū);銷(xiāo)售管理系統(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 開(kāi)發(fā)工具及技術(shù)1</p><p> 1.3.1 開(kāi)發(fā)工具1</p><p> 1.3.2 開(kāi)發(fā)語(yǔ)言2</p><p> 1.3.3 開(kāi)發(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ù)庫(kù)的分析與設(shè)計(jì)8</p><p> 3.1.1 數(shù)據(jù)庫(kù)的需求分析8</p><p> 3.1.2 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)8</p><p> 3.1.3 數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)11</p><p> 3.2 連接數(shù)據(jù)庫(kù)的前期準(zhǔn)備工作14</p><p> 3.2.1 編寫(xiě)配置讀取
20、類(lèi)14</p><p> 3.2.2 編寫(xiě)JDBC操作類(lèi)16</p><p> 3.2.3 創(chuàng)建數(shù)據(jù)轉(zhuǎn)換工具類(lèi)17</p><p> 4 系統(tǒng)功能的實(shí)現(xiàn)19</p><p> 4.1 創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象19</p><p> 4.2 管理員登陸頁(yè)面20</p><p>
21、; 4.3 設(shè)計(jì)父類(lèi)21</p><p> 4.4 出版社管理模塊23</p><p> 4.5 書(shū)本管理模塊28</p><p> 4.6 銷(xiāo)售管理模塊35</p><p> 5 系統(tǒng)測(cè)試43</p><p> 5.1 系統(tǒng)測(cè)試目的與意義43</p><p>
22、; 5.2 測(cè)試過(guò)程43</p><p> 5.2.1 登錄模塊測(cè)試43</p><p> 5.2.2 銷(xiāo)售管理模塊測(cè)試44</p><p> 5.2.3 庫(kù)存管理模塊測(cè)試44</p><p> 5.2.4 書(shū)本管理模塊測(cè)試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> 改革開(kāi)放以來(lái),我國(guó)經(jīng)濟(jì)迅速發(fā)展,科技日益更新,計(jì)算機(jī)以迅雷不及掩耳之勢(shì)覆蓋全球,大量實(shí)用軟件更是伴隨計(jì)算機(jī)語(yǔ)言產(chǎn)生而受到眾多領(lǐng)域的青睞。好的管理軟件能夠把大量的工作人員從繁重的手工工作中解脫出來(lái),提高工作效率并減少錯(cuò)誤的發(fā)生。調(diào)查
25、發(fā)現(xiàn),目前我國(guó)中小型書(shū)店仍采用手工方式對(duì)圖書(shū)進(jìn)行管理記錄,不僅工作量大、效率低,而且還容易出現(xiàn)數(shù)量不清、賬目混亂等問(wèn)題,與現(xiàn)代辦公要求格格不入。</p><p> 中小型書(shū)店最繁重的工作就是圖書(shū)進(jìn)、存、銷(xiāo)三方面的工作,因此只需要設(shè)計(jì)一款簡(jiǎn)單而實(shí)用的軟件,幫助書(shū)店工作人員輕松實(shí)現(xiàn)這三方面的工作?;靵y的界面,繁瑣的操作不僅難以達(dá)到輕松管理的目的,還容易使工作人員情緒暴躁,影響書(shū)店效益。因此,我的目標(biāo)是做一款界面清晰
26、,操作方便的簡(jiǎn)單管理軟件。</p><p> 1.2 目的和意義</p><p> 圖書(shū)銷(xiāo)售管理系統(tǒng)開(kāi)發(fā)的目的是為圖書(shū)銷(xiāo)售單位提供圖書(shū)信息管理和提高圖書(shū)銷(xiāo)售管理工作的效率。 </p><p> 圖書(shū)銷(xiāo)售管理系統(tǒng)是一個(gè)圖書(shū)銷(xiāo)售單位不可缺少的部分,它的內(nèi)容對(duì)于圖書(shū)銷(xiāo)售單位的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以圖書(shū)銷(xiāo)售管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑?/p>
27、快捷的查詢手段。但一直以來(lái)人們使用傳統(tǒng)人工的方式管理數(shù)據(jù)信息,這種管理方式存在著許多缺點(diǎn),如:效率低、工作量大,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。 </p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)圖書(shū)銷(xiāo)售信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高圖書(shū)
28、銷(xiāo)售管理工作的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。</p><p> 1.3 開(kāi)發(fā)工具及技術(shù)</p><p> 本系統(tǒng)基于C/S結(jié)構(gòu)設(shè)計(jì),采用三層架構(gòu)體系,編寫(xiě)系統(tǒng)主要用到Java中的GUI(圖形用戶界面)和AWT編程,開(kāi)發(fā)環(huán)境為Eclipse,數(shù)據(jù)庫(kù)采用MySQL5.0并以Navicat for MySQL作為輔助工具。下面分別對(duì)C/S模型、三層架構(gòu)模式、GU
29、I、AWT編程、Eclipse、MySQL 5.0數(shù)據(jù)庫(kù)和Navicat for MySQL進(jìn)行簡(jiǎn)要介紹。</p><p> 1.3.1 開(kāi)發(fā)工具</p><p> (1) Eclipse</p><p> Eclipse是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(IDE)。最初主要用來(lái)Java語(yǔ)言開(kāi)發(fā),通過(guò)安裝不同的插件Eclipse可以支持不同的計(jì)算機(jī)語(yǔ)言,比如C
30、++和Python等開(kāi)發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開(kāi)發(fā)商以Eclipse為框架開(kāi)發(fā)自己的IDE.</p><p> Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開(kāi)發(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è)開(kāi)放源碼項(xiàng)目,它其實(shí)是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開(kāi)放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開(kāi)發(fā)各自的
32、插件,因此越來(lái)越受人們關(guān)注。隨后還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,Eclipse的目標(biāo)是成為可進(jìn)行任何語(yǔ)言開(kāi)發(fā)的IDE集成者,使用者只需下載各種語(yǔ)言的插件即可。</p><p> (2) MySQL 5.0</p><p> MySQL 5.0是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開(kāi)發(fā),目前屬于Oracle公司。Mysql是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理
33、系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由
34、于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開(kāi)發(fā)環(huán)境。</p><p> (3) Navicat for MySQL</p><p> Navicat for MySQL是一款強(qiáng)大的 MySQL 數(shù)據(jù)庫(kù)管理和開(kāi)發(fā)工具,它為專業(yè)開(kāi)發(fā)者提供了一套強(qiáng)大的足夠尖端的工
35、具,但對(duì)于新用戶仍然易于學(xué)習(xí)。Navicat for MySQL 基于Windows平臺(tái),為 MySQL 量身訂作,提供類(lèi)似于 MySQL 的用管理界面工具。此解決方案的出現(xiàn),將解放 PHP、J2EE 等程序員以及數(shù)據(jù)庫(kù)設(shè)計(jì)者、管理者的大腦,降低開(kāi)發(fā)成本,為用戶帶來(lái)更高的開(kāi)發(fā)效率。</p><p> Navicat for MySQL 使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易
36、地創(chuàng)建、組織、存取和共享信息。 用戶可完全控制 MySQL 數(shù)據(jù)庫(kù)和顯示不同的管理資料,包括一個(gè)多功能的圖形化管理用戶和訪問(wèn)權(quán)限的管理工具,方便將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫(kù)中(Local to Remote、Remote to Remote、Remote to Local),進(jìn)行檔案?jìng)浞荨?Navicat for MySQL 支援 Unicode,以及本地或遠(yuǎn)程 MySQL 服務(wù)器多連線,用戶可瀏覽數(shù)據(jù)庫(kù)、建立和刪除數(shù)據(jù)庫(kù)、編輯
37、數(shù)據(jù)、建立或執(zhí)行 SQL queries、管理用戶權(quán)限(安全設(shè)定)、將數(shù)據(jù)庫(kù)備份/復(fù)原、匯入/匯出數(shù)據(jù)(支援 CSV, TXT, DBF 和 XML 檔案種類(lèi))等。軟件與任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 數(shù)據(jù)種類(lèi)等的規(guī)范。</p><p> 1.3.2 開(kāi)發(fā)語(yǔ)言</p><p> 主要使用Java語(yǔ)言
38、中的GUI(圖形用戶界面)和AWT(抽象窗口工具包)編程。</p><p><b> (1) GUI</b></p><p> 圖形用戶界面(Graphical User Interface,簡(jiǎn)稱 GUI,又稱圖形用戶接口),即人機(jī)交互圖形化用戶界面設(shè)計(jì),是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)在視覺(jué)上更易于
39、接受。</p><p><b> (2) AWT</b></p><p> 抽象窗口工具包(Abstract Windowing Toolkit,縮寫(xiě)為AWT)是Java的平臺(tái)獨(dú)立的窗口系統(tǒng)圖形和用戶界面器件工具包。AWT 是Java基礎(chǔ)類(lèi) (JFC)的一部分,為Java程序提供圖形用戶界面(GUI)的標(biāo)準(zhǔn)API。 AWT提供了JavaApplet和Java Ap
40、plication中可用的用戶圖形界面GUI中的基本組件(components)。由于Java是一種獨(dú)立于平臺(tái)的程序設(shè)計(jì)語(yǔ)言,但GUI卻往往是依賴于特定平臺(tái)的,Java采用了相應(yīng)的技術(shù)使得AWT能提供給應(yīng)用程序獨(dú)立于機(jī)器平臺(tái)的接口,這保證了同一程序的GUI在不同機(jī)器上運(yùn)行具有類(lèi)似的外觀。</p><p> 1.3.3 開(kāi)發(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),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(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)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(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ù)層。其工作模式:顯示層往往面向操作者,主要用來(lái)接受數(shù)據(jù)、傳遞數(shù)據(jù)和顯示數(shù)據(jù);業(yè)務(wù)邏輯層主要是用來(lái)處理顯示層接收到的數(shù)據(jù)和數(shù)據(jù)庫(kù)中
43、的數(shù)據(jù);數(shù)據(jù)層主要用來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,其中包括常見(jiàn)的增、刪、改、查等操作。采用三層架構(gòu)模式可以大大降低了程序的耦合性,符合現(xiàn)代軟件的標(biāo)準(zhǔn)。</p><p> 1.4 軟硬件需求</p><p> 1.4.1 硬件需求</p><p> 電腦:筆記本電腦或臺(tái)式電腦</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> 開(kāi)發(fā)工具:Eclipse</p><p><b> 開(kāi)發(fā)語(yǔ)言: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)目是否可行。對(duì)整個(gè)可行性研究提出綜合分析評(píng)價(jià),指出優(yōu)缺點(diǎn)和建議以確定該項(xiàng)目是否可行。</p><p> 2.1.1 技術(shù)可行性<
46、;/p><p> 本系統(tǒng)開(kāi)發(fā)工具是Eclipse和MySQL數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言是Java,java是一種面向?qū)ο缶幊陶Z(yǔ)言,簡(jiǎn)單易學(xué)而且靈活方便。數(shù)據(jù)庫(kù)的設(shè)計(jì)和操作是本系統(tǒng)設(shè)計(jì)的核心,但在Navicat for MySQL的幫助下能夠輕松便捷的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。此外,大學(xué)期間學(xué)習(xí)過(guò)數(shù)據(jù)庫(kù)操作語(yǔ)言,軟件測(cè)試,UML統(tǒng)一建模語(yǔ)言等課程使系統(tǒng)分析、設(shè)計(jì)和測(cè)試不再成為難題。因此,完成系統(tǒng)實(shí)現(xiàn)在技術(shù)上完全具有可行性。</p
47、><p> 2.1.2 經(jīng)濟(jì)可行性</p><p> 開(kāi)發(fā)此項(xiàng)目用到的軟件都是開(kāi)源的,為開(kāi)發(fā)軟件節(jié)省了大量的金錢(qián),達(dá)到了低成本的目的。另外,本系統(tǒng)對(duì)計(jì)算機(jī)配置的要求不高,幾乎每個(gè)家庭中可使用的電腦都能滿足。因此,開(kāi)發(fā)該系統(tǒng)在經(jīng)濟(jì)上是完全可行的。</p><p> 2.1.3 操作可行性</p><p> 該系統(tǒng)是本著界面簡(jiǎn)潔、操作方便
48、的目的進(jìn)行開(kāi)發(fā),主要目的是幫助圖書(shū)銷(xiāo)售商對(duì)圖書(shū)進(jìn)行進(jìn)、存、銷(xiāo)三方面管理。因此該系統(tǒng)在操作上具有功能簡(jiǎn)單,操作簡(jiǎn)潔的優(yōu)勢(shì),完全可行。</p><p> 2.1.4 法律可行性</p><p> 由于在開(kāi)發(fā)過(guò)程中所使用的軟件都是開(kāi)源軟件,不存在侵權(quán)問(wèn)題。此外,開(kāi)發(fā)該系統(tǒng)的目的僅僅是作為一款管理軟件應(yīng)用于圖書(shū)銷(xiāo)售單位,不存在與國(guó)家法律不符的目的綜上所述,該系統(tǒng)的開(kāi)發(fā)在法律方面也是可行的。&
49、lt;/p><p> 2.2 系統(tǒng)流程圖</p><p> 圖2.1 系統(tǒng)流程圖</p><p> 如圖2.1所示,由于系統(tǒng)是C/S模式,所以無(wú)需注冊(cè)等操作,只需要在編程時(shí)將用戶名和密碼設(shè)定,如客戶對(duì)用戶名和密碼有特殊要求,由編程人員將客戶要求的用戶名和密碼事先輸入程序當(dāng)中,如本系統(tǒng)的用戶名和密碼都為yujian,該數(shù)據(jù)已經(jīng)在數(shù)據(jù)庫(kù)的T_USER表事先存好。如果
50、客戶輸入錯(cuò)誤,則要重新回到登錄頁(yè)面輸入正確的賬號(hào)密碼。如果輸入正確,則可以進(jìn)入用戶操作頁(yè)面進(jìn)行相應(yīng)的操作。在進(jìn)一系列的操作之后然后點(diǎn)擊關(guān)閉按鈕,即可退出系統(tǒng)。</p><p> 2.3 系統(tǒng)用戶用例圖</p><p> 系統(tǒng)只涉及圖書(shū)的進(jìn)、存、銷(xiāo)三方面的功能,其所對(duì)應(yīng)的功能模塊分別是圖書(shū)管理模塊、庫(kù)存管理模塊、銷(xiāo)售管理模塊。此外,為方便用戶在這三方面的操作更加簡(jiǎn)潔增加了出版社管理模塊
51、,種類(lèi)管理模塊,這樣做一方面能夠使用戶界面簡(jiǎn)單易用,另一方面能夠使用戶在主要使用的三個(gè)重要界面有更多的選擇而不是去輸入,減少了錯(cuò)誤發(fā)生的概率。</p><p> 管理員即能夠正確輸入用戶名和密碼的操作人員,且其享有全部權(quán)限。因此管理員用例圖十分清晰明了,如圖2.2。</p><p> 圖2.2 管理員用例圖</p><p> 圖2.2清晰明了的告訴我們用戶登錄
52、是前提,只有用戶經(jīng)過(guò)正確的身份驗(yàn)證才可以操作本系統(tǒng)幾個(gè)最重要的操作頁(yè)面。</p><p> 2.4 功能模塊需求分析</p><p> 本系統(tǒng)本著界面簡(jiǎn)潔大方,操作簡(jiǎn)單的原則實(shí)現(xiàn)以下功能:</p><p> 1.系統(tǒng)界面清晰分明、簡(jiǎn)單易用,管理人員能夠在短時(shí)間內(nèi)熟練操作。</p><p> 2.管理員享有銷(xiāo)售管理、庫(kù)存管理、圖書(shū)管理
53、、出版社管理、種類(lèi)管理五大權(quán)限。</p><p> 3.盡可能的讓用戶去選擇,而不是輸入,減少錯(cuò)誤發(fā)生的概率。</p><p> 4.增加主要功能的快捷鍵,增加操作的簡(jiǎn)易性。</p><p> 系統(tǒng)的功能結(jié)構(gòu)圖,如圖2.3。</p><p> 圖2.3 系統(tǒng)功能模塊圖</p><p> 從圖2.3中可以看到,
54、系統(tǒng)分為六個(gè)模塊,分別是管理人員登錄模塊,銷(xiāo)售管理模塊,入庫(kù)管理模塊,圖書(shū)管理模塊,種類(lèi)管理模塊和出版社管理模塊,其中登錄模塊并不與其它模塊相平行,登錄模塊只是決定操作人員是否有權(quán)限去操作其它五大模塊。</p><p> 2.5 設(shè)計(jì)的基本思路</p><p> 設(shè)計(jì)思路遵循以下幾點(diǎn):</p><p> 1. 考慮到圖書(shū)銷(xiāo)售單位只是簡(jiǎn)單的對(duì)圖書(shū)進(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)模式。一方面能夠使開(kāi)發(fā)人員的邏輯思維清晰,提高軟件開(kāi)發(fā)效率,另一方面降低了程序的耦合性,例如本程序如果要開(kāi)發(fā)成為B/S結(jié)構(gòu)只需要改動(dòng)業(yè)務(wù)邏輯層即可。</p><p> 3. 模塊化設(shè)計(jì)。模塊化設(shè)計(jì)要求將整個(gè)系統(tǒng)劃分
56、成基于小的模塊,有利于代碼的重載,簡(jiǎn)化設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。</p><p> 4. 效率第一。設(shè)計(jì)該系統(tǒng)的目的是讓大量工作人員從繁瑣的工作中解脫出來(lái),因此本系統(tǒng)必須達(dá)到提高工作效率的目的。</p><p> 5.界面清晰明了,操作簡(jiǎn)單。方便用戶使用,讓用戶能夠在最短時(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ì)加入自動(dòng)計(jì)算功能,且不可更改。</p><p> 4.在操作發(fā)生錯(cuò)誤時(shí)出現(xiàn)友好提示。</p><p> 2.6.2 數(shù)據(jù)的正確性和完整性</p><p> 1.數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中明確哪些數(shù)據(jù)可以為空,哪些數(shù)據(jù)不能為空
59、。</p><p> 2.關(guān)系表中的相關(guān)數(shù)據(jù)必須明確統(tǒng)一。</p><p> 3.具有自動(dòng)判斷功能,如銷(xiāo)售數(shù)量大于庫(kù)存數(shù)量時(shí)應(yīng)給出友好的錯(cuò)誤提示。</p><p> 4.具有自動(dòng)加、減、乘功能,保證單價(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è)陽(yáng)光的心情,提高工作人員工作效率,因此界面的設(shè)計(jì)必須滿足以下幾點(diǎn)要求:&l
61、t;/p><p><b> 1.簡(jiǎn)易性</b></p><p> 界面的簡(jiǎn)潔是讓用戶便于了解,便于使用,并能減少用戶發(fā)生錯(cuò)誤選擇的可能性。</p><p><b> 2.用戶語(yǔ)言</b></p><p> 界面中要使用能反應(yīng)用戶本身的語(yǔ)言,而不是程序員的語(yǔ)言。</p><p&
62、gt;<b> 3.記憶負(fù)擔(dān)最小化</b></p><p> 人腦不是電腦,在設(shè)計(jì)界面時(shí)必須要考慮大腦處理信息的限度。人類(lèi)的短期記憶極不穩(wěn)定,且有限,24小時(shí)內(nèi)存在25%的遺忘率。所以對(duì)用戶來(lái)說(shuō),瀏覽信息要比記憶更加重要。</p><p><b> 4.一致性</b></p><p> 一致性是每個(gè)優(yōu)秀界面都具備的
63、特點(diǎn)。界面的結(jié)構(gòu)必須清晰且一致,與客戶的需求一致。</p><p><b> 5.清楚</b></p><p> 視覺(jué)上便于理解與使用。</p><p><b> 6.用戶熟悉程度</b></p><p> 用戶可通過(guò)已掌握的知識(shí)來(lái)使用界面,但不應(yīng)超出一般常識(shí)。</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ù)庫(kù)的分析與設(shè)計(jì)</p><p> 數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)的各個(gè)部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在,因此數(shù)據(jù)庫(kù)是系統(tǒng)的核心和基礎(chǔ)。的計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫(kù)為核心,在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲(chǔ)、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的質(zhì)量和效率。</p><p&
66、gt; 數(shù)據(jù)庫(kù)的設(shè)計(jì)一般經(jīng)過(guò)需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)4個(gè)步驟。</p><p> 3.1.1 數(shù)據(jù)庫(kù)的需求分析</p><p> 首先可以確定需要一個(gè)用戶表,其中儲(chǔ)存的數(shù)據(jù)有用戶名和密碼,以作驗(yàn)證之用。其次,系統(tǒng)相關(guān)的表,從最基礎(chǔ)開(kāi)始,有出版社表、書(shū)的類(lèi)型表、書(shū)表、入庫(kù)記錄表和銷(xiāo)售記錄表,其中,一條入庫(kù)記錄中涉及多本書(shū),一條銷(xiāo)售記錄也涉及多本書(shū),因此還需要書(shū)的入庫(kù)記錄
67、表和書(shū)的銷(xiāo)售記錄表,一條書(shū)的入庫(kù)記錄對(duì)應(yīng)一本書(shū),該條書(shū)的入庫(kù)記錄屬于某一條入庫(kù)記錄,可以理解成這是書(shū)與入庫(kù)記錄的關(guān)系表,同樣地,書(shū)的銷(xiāo)售記錄與書(shū)的入庫(kù)記錄一樣。</p><p> 3.1.2 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)</p><p> 概念設(shè)計(jì)是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),從用戶的角度進(jìn)行視圖設(shè)計(jì),然后將視圖集成,最后對(duì)集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。&l
68、t;/p><p> 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)采用實(shí)體—聯(lián)系(E-R)模型設(shè)計(jì)方法。E-R模型用E-R圖表示,E-R模型法的組成元素有:實(shí)體、屬性、聯(lián)系。下面簡(jiǎn)單介紹這三種組成元素:</p><p> 1.實(shí)體(Entity):客觀存在并可相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是具體的人、事、物,例如一名學(xué)生,一門(mén)課程等;也可以是抽象的概念或聯(lián)系,例如一次選課,一場(chǎng)競(jìng)賽等。</p>&l
69、t;p> 2.屬性(Attribute):每個(gè)實(shí)體都有自己的一組特征或性質(zhì),這種用來(lái)描述實(shí)體的特征或性質(zhì)稱為實(shí)體的屬性。例如,學(xué)生實(shí)體具有學(xué)號(hào)、姓名、性別等屬性。不同實(shí)體的屬性是不同的。實(shí)體屬性的某一組特定的取值(稱為屬性值)確定了一個(gè)特定的實(shí)體。例如,學(xué)號(hào)是0611001、姓名是王冬、性別是女等等,這些屬性值綜合起來(lái)就確定了“王冬”這名同學(xué)。屬性的可能取值范圍稱為屬性域,也稱為屬性的值域。例如,學(xué)號(hào)的域?yàn)?位整數(shù),姓名的域?yàn)樽?/p>
70、符串集合,性別的域?yàn)椋校?。?shí)體的屬性值是數(shù)據(jù)庫(kù)中存儲(chǔ)的主要數(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ù)庫(kù)概念結(jié)構(gòu),即概念模式。概念模式獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),獨(dú)立于數(shù)據(jù)庫(kù)的DBMS,不依賴
71、于計(jì)算機(jī)系統(tǒng)的,</p><p> 根據(jù)以上對(duì)數(shù)據(jù)庫(kù)的需求分析,并結(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)證信息儲(chǔ)存在數(shù)據(jù)庫(kù)當(dāng)中。</p><p> 圖3.2 出版社實(shí)體E-R圖</p><p> 圖3.2是出版社信息的E-R圖,主要包括出版社名稱、聯(lián)系人、聯(lián)系電話、簡(jiǎn)介四方面,存儲(chǔ)這些信息的主要目的是方便圖書(shū)管理人員聯(lián)系出版社以進(jìn)行進(jìn)退貨的協(xié)商。</p><p> 圖3.3 書(shū)本信息實(shí)
73、體E-R圖</p><p> 圖3.3為書(shū)本信息的E-R圖,主要包括的信息有書(shū)名、作者、單價(jià)、縮略圖和庫(kù)存數(shù)量。書(shū)名、單價(jià)和作者是由操作人員輸入并儲(chǔ)存在數(shù)據(jù)庫(kù)當(dāng)中的。庫(kù)存數(shù)量是當(dāng)前書(shū)本的數(shù)目,當(dāng)數(shù)目發(fā)生改變時(shí),數(shù)據(jù)會(huì)自動(dòng)更新。</p><p> 圖3.4 種類(lèi)信息實(shí)體E-R圖</p><p> 圖3.4是種類(lèi)信息的E-R圖,主要包括種類(lèi)名稱、簡(jiǎn)介兩部分信息。由
74、于種類(lèi)管理頁(yè)面是作為圖書(shū)管理頁(yè)面的輔助頁(yè)面設(shè)計(jì)的,其數(shù)據(jù)庫(kù)中的信息也是為圖書(shū)管理信息設(shè)計(jì)的。</p><p> 圖3.5 入庫(kù)信息實(shí)體E-R圖</p><p> 圖3.5是入庫(kù)信息的E-R圖,因?yàn)閹?kù)存管理頁(yè)面有個(gè)按日期查詢?nèi)霂?kù)信息的功能,為此,需要設(shè)計(jì)一個(gè)記錄入庫(kù)日期的數(shù)據(jù)庫(kù)。</p><p> 圖3.6 交易信息實(shí)體E-R圖</p><p
75、> 圖3.6是交易信息的E-R圖,設(shè)計(jì)這樣一個(gè)數(shù)據(jù)的目的同設(shè)計(jì)入庫(kù)信息的目的是一樣的,都是為了方面管理人員進(jìn)行查詢。</p><p> 圖3.7 書(shū)的入庫(kù)信息實(shí)體E-R圖</p><p> 如圖3.7,書(shū)的入庫(kù)信息不同于入庫(kù)信息,書(shū)的入庫(kù)信息包括入庫(kù)書(shū)本的名稱、入庫(kù)數(shù)量和相關(guān)的入庫(kù)記錄三方面的信息。入庫(kù)管理信息頁(yè)面中按日期查詢?nèi)霂?kù)記錄所查詢到的內(nèi)容正是此數(shù)據(jù)中記錄的相關(guān)信息。&
76、lt;/p><p> 圖3.8 銷(xiāo)售信息實(shí)體E-R圖</p><p> 圖3.8是銷(xiāo)售信息的E-R圖,與圖3.7相似,這個(gè)數(shù)據(jù)庫(kù)的設(shè)計(jì)主要是保存銷(xiāo)售的書(shū)本、數(shù)量和當(dāng)天的銷(xiāo)售記錄信息,其主要目的一方面是記錄,另一方面是方便管路人員查詢。</p><p> 3.1.3 數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 由于數(shù)據(jù)庫(kù)概念模型獨(dú)立于任何特定
77、的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫(kù)模型轉(zhuǎn)換應(yīng)遵循下列原則:</p><p> 1.每一個(gè)實(shí)體要轉(zhuǎn)換成一個(gè)關(guān)系</p><p> 2.所有的主鍵必須定義非空(NOT NULL)</p><p> 3.對(duì)于二元聯(lián)系應(yīng)按照一對(duì)多、弱對(duì)實(shí)、一對(duì)一、多對(duì)多等聯(lián)系來(lái)定義外鍵
78、。</p><p> 根據(jù)E-R模型,圖書(shū)管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說(shuō)明:</p><p> 1.管理員信息表只記錄賬戶與密碼,以便登錄用。表結(jié)構(gòu)如表3.1所示。</p><p> 表3.1 管理員信息表(t_user)</p><p> 2.種類(lèi)信息表主要是記錄了書(shū)的種類(lèi)的基本信息,表結(jié)構(gòu)如表3.2所示。&
79、lt;/p><p> 表3.2 書(shū)的種類(lèi)信息表(t_book_type)</p><p> 3.出版社信息表主要是記錄了出版社的相關(guān)信息,表結(jié)構(gòu)如圖3.3所示。</p><p> 表3.3 出版社信息表(t_publisher)</p><p> 4.書(shū)本信息表主要記錄了與書(shū)相關(guān)的所有內(nèi)容,表結(jié)構(gòu)如表3.4示。</p>&l
80、t;p> 表3.4 書(shū)本信息表(t_book)</p><p> 5.交易記錄表, 一個(gè)交易記錄包括多個(gè)書(shū)的銷(xiāo)售記錄, 一次交易可能有多本書(shū),表結(jié)構(gòu)如表3.5示。</p><p> 表3.5 書(shū)本交易信息表(t_sale_record)</p><p> 6.書(shū)的銷(xiāo)售記錄, 一條記錄對(duì)應(yīng)一本書(shū),表結(jié)構(gòu)如表3.6示。</p><p&g
81、t; 表3.6 書(shū)本信息表(t_book_sale_record)</p><p> 7.入庫(kù)記錄表, 一次入庫(kù)會(huì)入多本書(shū),表結(jié)構(gòu)如表3.7所示。</p><p> 表3.7 入庫(kù)記錄表表(t_book_sale_record)</p><p> 8.書(shū)的入庫(kù)記錄表, 其中包括入庫(kù)的書(shū)、對(duì)應(yīng)的入庫(kù)記錄、入庫(kù)數(shù)量等信息,表結(jié)構(gòu)如表3.8所示。</p>
82、;<p> 表3.8 入庫(kù)記錄表表(t_book_in_record)</p><p> 3.2 連接數(shù)據(jù)庫(kù)的前期準(zhǔn)備工作</p><p> 數(shù)據(jù)庫(kù)中的表已經(jīng)建好,在系統(tǒng)功能實(shí)現(xiàn)時(shí)只需要建立每個(gè)表相對(duì)應(yīng)的類(lèi)即可,要使客戶對(duì)書(shū)本的管理信息存入數(shù)據(jù)庫(kù)就必須將數(shù)據(jù)庫(kù)與程序聯(lián)系起來(lái)。為此,需要做一些工作將數(shù)據(jù)庫(kù)“嵌入”系統(tǒng)之中。</p><p> 3
83、.2.1 編寫(xiě)配置讀取類(lèi)</p><p> 連接數(shù)據(jù)庫(kù)就要先做數(shù)據(jù)庫(kù)相關(guān)的一些配置,例如對(duì)應(yīng)數(shù)據(jù)庫(kù)的相關(guān)驅(qū)動(dòng)、數(shù)據(jù)庫(kù)地址、用戶名和密碼,然后可以放到配置文件中,如果需要更換數(shù)據(jù)庫(kù)或者地址,只需要修改這份配置文件即可。</p><p> 建立配置文件jdbc.properties,內(nèi)容如下:</p><p><b> //JDBC驅(qū)動(dòng)</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ù)庫(kù)用戶名<
85、;/b></p><p> jdbc.user=yujian</p><p><b> //密碼</b></p><p> jdbc.pass=yujian</p><p> 建立好該文件后,再編寫(xiě)類(lèi)去讀取該文件,獲得所需要的值即可。用于讀取配置的PropertiesUtil類(lèi),代碼如下:</p>
86、;<p> public class PropertiesUtil {</p><p> //該記錄所對(duì)應(yīng)的書(shū)的銷(xiāo)售數(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ù)庫(kù)驅(qū)動(dòng)</p><p> public static String JDBC_URL; //jdbc連接url</p><p> public static String JDBC_USER; //數(shù)據(jù)庫(kù)用戶名</p><p> public static String JD
89、BC_PASS; //數(shù)據(jù)庫(kù)密碼</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> //該記錄所對(duì)應(yīng)的書(shū)的銷(xiāo)售數(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ù)庫(kù)驅(qū)動(dòng)</p><p> public static Strin
94、g JDBC_URL; //jdbc連接url</p><p> public static String JDBC_USER; //數(shù)據(jù)庫(kù)用戶名</p><p> public static String JDBC_PASS; //數(shù)據(jù)庫(kù)密碼</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 編寫(xiě)JDBC操作類(lèi)</p><p> JDBC是Java Data Base Connectivity的簡(jiǎn)稱,是Java中進(jìn)行數(shù)據(jù)庫(kù)連接的技術(shù)。JDBC的API提供了標(biāo)準(zhǔn)統(tǒng)一的SQL數(shù)據(jù)存取接口,可以讓程序員不需要關(guān)心如何去連接不同的數(shù)據(jù)庫(kù),只需為不同的數(shù)據(jù)庫(kù)提供不同的驅(qū)動(dòng),就可以達(dá)
98、到連接不同數(shù)據(jù)庫(kù)的要求。</p><p> 配置好了之后,開(kāi)始著手編寫(xiě)數(shù)據(jù)庫(kù)的操作類(lèi),首先肯定是幫我們進(jìn)行數(shù)據(jù)庫(kù)連接,我們之前配置了連接的相關(guān)屬性,接著我們需要這個(gè)類(lèi)幫我們提供查詢、執(zhí)行SQL等功能。確定好目標(biāo)后,開(kāi)始編寫(xiě)。</p><p> 新建JDBCExecutor類(lèi),該類(lèi)具有屬性如下:</p><p> private static String DR
99、IVER = PropertiesUtil.JDBC_DRIVER; //獲得驅(qū)動(dòng)</p><p> private static String URL = PropertiesUtil.JDBC_URL; //獲得url</p><p> //獲得連接數(shù)據(jù)庫(kù)的用戶名</p><p> private static String USER = Properti
100、esUtil.JDBC_USER;</p><p> //獲得連接數(shù)據(jù)庫(kù)的密碼</p><p> private static String PASS = PropertiesUtil.JDBC_PASS;</p><p> private Connection connection; //連接對(duì)象</p><p> private
101、static JDBCExecutor jdbcExecutor; //維護(hù)一個(gè)本類(lèi)型的對(duì)象</p><p> private Statement stmt; //維護(hù)一個(gè)本類(lèi)型的對(duì)象</p><p> private static String DRIVER = PropertiesUtil.JDBC_DRIVER; //獲得驅(qū)動(dòng)</p><p> priv
102、ate static String URL = PropertiesUtil.JDBC_URL; //獲得url</p><p> //獲得連接數(shù)據(jù)庫(kù)的用戶名</p><p> private static String USER = PropertiesUtil.JDBC_USER;</p><p> //獲得連接數(shù)據(jù)庫(kù)的密碼</p><
103、p> private Connection connection; //連接對(duì)象</p><p> private static String PASS = PropertiesUtil.JDBC_PASS; </p><p> private static JDBCExecutor jdbcExecutor; //維護(hù)一個(gè)本類(lèi)型的對(duì)象</p><p>
104、 private Statement stmt; //維護(hù)一個(gè)本類(lèi)型的對(duì)象</p><p> 注:由于創(chuàng)建一個(gè)Connection對(duì)象需要耗費(fèi)很大的資源,因此使用單態(tài)模式,讓JDBCExecutor類(lèi)維護(hù)一個(gè)JDBCExecutor對(duì)象,可以在構(gòu)造器中創(chuàng)建Connection,由于JDBCExecutor是單態(tài)的,因此可以保證在應(yīng)用中只創(chuàng)建一個(gè)Connection。</p><p>
105、 然后在JDBCExecutor的構(gòu)造器中創(chuàng)建各個(gè)對(duì)象,再提供一個(gè)方法返回JDBCExecutor的實(shí)例。</p><p> private JDBCExecutor() {</p><p> //初始化JDBC驅(qū)動(dòng)并讓驅(qū)動(dòng)加載到j(luò)vm中</p><p> Class.forName(DRIVER);</p><p><b>
106、 //創(chuàng)建數(shù)據(jù)庫(kù)連接</b></p><p> connection = DriverManager.getConnection(URL, USER, PASS);</p><p> //創(chuàng)建Statement對(duì)象</p><p> stmt = connection.createStatement();</p><p>
107、<b> }</b></p><p> public static JDBCExecutor getJDBCExecutor() {</p><p> //如果本類(lèi)所維護(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ū)動(dòng)并讓驅(qū)動(dòng)加載到j(luò)vm中</p><p> Cla
109、ss.forName(DRIVER);</p><p><b> //創(chuàng)建數(shù)據(jù)庫(kù)連接</b></p><p> connection = DriverManager.getConnection(URL, USER, PASS);</p><p> //創(chuàng)建Statement對(duì)象</p><p> stmt = c
110、onnection.createStatement();</p><p><b> }</b></p><p> public static JDBCExecutor getJDBCExecutor() {</p><p> //如果本類(lèi)所維護(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> 最后只需要編寫(xiě)一些簡(jiǎn)單查詢功能,并把查詢后的結(jié)果保存在一個(gè)對(duì)象中即可:</p>
112、<p> public ResultSet executeQuery(String sql) {</p><p> //利用Statement對(duì)象執(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語(yǔ)句</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)換工具類(lèi)</p><p> DBCExecutor中提供了一個(gè)executeQuery方法,該方法返回ResultSet對(duì)象,需要對(duì)該結(jié)果集進(jìn)行一些封裝。因此需要?jiǎng)?chuàng)建一個(gè)工具類(lèi),對(duì)該
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- jave實(shí)現(xiàn)c-s圖書(shū)銷(xiāo)售管理系統(tǒng)
- C-S圖書(shū)銷(xiāo)售管理系統(tǒng)論文最終版.doc
- 基于C-S架構(gòu)的銷(xiāo)售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)論文--圖書(shū)銷(xiāo)售管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)---圖書(shū)銷(xiāo)售系統(tǒng)
- 基于C-S模式的銷(xiāo)售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于C-S模式的圖書(shū)管理系統(tǒng)的開(kāi)發(fā).pdf
- 基于C-S模式的藥品銷(xiāo)售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于C-S模式的遠(yuǎn)程銷(xiāo)售管理系統(tǒng)的研究與設(shè)計(jì).pdf
- 畢業(yè)設(shè)計(jì)(論文)在線圖書(shū)銷(xiāo)售管理系統(tǒng)
- 基于C-S結(jié)構(gòu)的圖書(shū)館管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā).pdf
- 基于C-S模式的銷(xiāo)售部門(mén)信息管理系統(tǒng).pdf
- 畢業(yè)設(shè)計(jì)---網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)
- c語(yǔ)言---圖書(shū)銷(xiāo)售管理系統(tǒng)
- 基于C-S結(jié)構(gòu)的分銷(xiāo)管理系統(tǒng)設(shè)計(jì).pdf
- c++圖書(shū)管理系統(tǒng)(doc畢業(yè)設(shè)計(jì)論文)
- c++課程設(shè)計(jì)---圖書(shū)銷(xiāo)售管理系統(tǒng)
- 基于WEB和C-S的教務(wù)管理系統(tǒng)設(shè)計(jì).pdf
- 畢業(yè)設(shè)計(jì)--銷(xiāo)售管理系統(tǒng)設(shè)計(jì)
- c圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)含源文件
評(píng)論
0/150
提交評(píng)論