影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)專業(yè)畢業(yè)論文

上傳人:1777****777 文檔編號(hào):37519617 上傳時(shí)間:2021-11-03 格式:DOC 頁(yè)數(shù):47 大?。?96.02KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)專業(yè)畢業(yè)論文_第1頁(yè)
第1頁(yè) / 共47頁(yè)
基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)專業(yè)畢業(yè)論文_第2頁(yè)
第2頁(yè) / 共47頁(yè)
基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)專業(yè)畢業(yè)論文_第3頁(yè)
第3頁(yè) / 共47頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)專業(yè)畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)專業(yè)畢業(yè)論文(47頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 XXXX大學(xué)畢業(yè)論文 基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 專業(yè)名稱: 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 200804 學(xué)生姓名: XXX 指導(dǎo)教師: XXX 完成時(shí)間: 2012年4月 42 摘要 隨著科學(xué)技術(shù)的發(fā)展和人們生活水平的提高,人們對(duì)于醫(yī)藥產(chǎn)品的需求迅速增加,管理藥品信息成為制藥行業(yè)的各項(xiàng)工作中不可缺少的一部分。本醫(yī)藥管理系統(tǒng)是為了管理藥品信息而設(shè)計(jì)的。以前的數(shù)據(jù)處理要用手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后也

2、不易更改。而本醫(yī)藥管理系統(tǒng)使用起來,效率高,速度快,也方便使用和修改。 根據(jù)實(shí)際需求,本醫(yī)藥管理系統(tǒng)是在Windows XP操作系統(tǒng)環(huán)境下,以MyEclipse 8.6為前臺(tái)開發(fā)工具,采用JSP技術(shù),用MySQL Server 5.0為后臺(tái)數(shù)據(jù)庫(kù)開發(fā)工具來實(shí)現(xiàn)的。主要實(shí)現(xiàn)醫(yī)藥管理、類別管理、購(gòu)買藥品、銷售管理、進(jìn)貨/需求管理和系統(tǒng)管理等功能。 本醫(yī)藥管理系統(tǒng)首先輸入和存儲(chǔ)一些基本的數(shù)據(jù)資料,例如本系統(tǒng)中的藥品信息和銷售信息、進(jìn)貨/需求信息,對(duì)于這些信息和數(shù)據(jù)能方便的進(jìn)行添加、修改、查詢和刪除。其次,為了方便管理者管理數(shù)據(jù),對(duì)各種數(shù)據(jù)進(jìn)行統(tǒng)計(jì),如統(tǒng)計(jì)庫(kù)存信息,銷售信息和進(jìn)貨/需求信息等。

3、 關(guān)鍵詞 醫(yī)藥管理系統(tǒng);藥品信息管理;JSP技術(shù) ABSTRACT With the development of science and technology and peoples living standards improve, the demand for pharmaceutical products increased rapidly, the management of drug information has become an indispensable part of the work of the pharmaceut

4、ical industry.The management system of the medicine is designed to manage drug information. The previous data processing to use manual operation, a heavy workload, error rate, error is not easy to change. The use of the pharmaceutical management system, high efficiency, fast, easy to use and modify.

5、 According to the actual needs of the pharmaceutical management system is in the Windows XP operating system environment, the MyEclipse 8.6 development tools for the front, using JSP technology, MySQL Server 5.0 back-end database development tools. Medical management, category management, buying dr

6、ugs, sales management, purchase / demand management and system management functions. Management system of the medicine first enter and store some of the basic data, such as drug information and sales information in this system, purchase / demand for such information and data can easily add, modify,

7、 query and delete. Secondly, in order to facilitate management of data managers, a variety of data statistics, such as statistical inventory information, sales information, and purchase / demand information. Keywords Pharmaceutical management system; information management; JSP tec

8、hnology 目 錄 1 緒論 1 1.1 系統(tǒng)開發(fā)背景 1 1.2 系統(tǒng)開發(fā)意義 1 1.3 文章內(nèi)容安排 1 2 系統(tǒng)開發(fā)環(huán)境和開發(fā)工具簡(jiǎn)介 3 2.1 系統(tǒng)開發(fā)環(huán)境 3 2.2 系統(tǒng)開發(fā)工具簡(jiǎn)介 3 2.2.1 MySQL數(shù)據(jù)庫(kù)介紹 3 2.2.2 JSP技術(shù)概述 3 3 系統(tǒng)需求分析 5 3.1 可行性分析 5 3.1.1 技術(shù)可行性 5 3.1.2 經(jīng)濟(jì)可行性 5 3.2 系統(tǒng)功能需求 5 3.3 數(shù)據(jù)流圖 6 4 系統(tǒng)總體設(shè)計(jì) 8 4.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 8 4.1.1 邏輯分層結(jié)構(gòu)設(shè)計(jì) 9

9、4.1.2 定義ActionForm 9 4.1.3 持久層結(jié)構(gòu)設(shè)計(jì) 10 4.1.4 業(yè)務(wù)層結(jié)構(gòu)設(shè)計(jì) 11 4.1.5 頁(yè)面結(jié)構(gòu)設(shè)計(jì) 11 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 12 4.2.1 實(shí)體對(duì)象設(shè)計(jì) 12 4.2.2 數(shù)據(jù)庫(kù)表結(jié)構(gòu) 12 4.2.3 數(shù)據(jù)庫(kù)E-R圖 14 5 系統(tǒng)詳細(xì)設(shè)計(jì) 17 5.1 公共類設(shè)計(jì) 18 5.1.1 Hibernate過濾器 18 5.1.2 SuperDao類 19 5.1.3 BaseAction類 20 5.1.4 DeleteAction類 21 5.1.5 字符串工具類 22 5.2 系統(tǒng)登陸模塊

10、設(shè)計(jì) 23 5.3 醫(yī)藥管理模塊設(shè)計(jì) 24 5.3.1 藥品對(duì)象持久層設(shè)計(jì) 26 5.3.2 藥品信息的添加與修改 26 5.3.3 分頁(yè)查看所有藥品 27 5.3.4 查看藥品詳細(xì)信息 27 5.3.5 查詢藥品 28 5.3.6 高級(jí)查詢 28 5.3.7 查看庫(kù)存 29 5.4 類別管理模塊設(shè)計(jì) 30 5.4.1 藥品類別持久層設(shè)計(jì) 30 5.4.2 藥品類別的添加 30 5.4.3 分頁(yè)查看類別信息 31 5.4.4 類別的修改與刪除 31 5.4.5 藥品類別統(tǒng)計(jì) 31 5.5 購(gòu)買藥品模塊設(shè)計(jì) 32 5.5.1 購(gòu)買藥

11、品 33 5.5.2 查看選購(gòu) 33 5.6 銷售管理模塊設(shè)計(jì) 34 5.6.1 查看明細(xì)和今日明細(xì) 35 5.6.2 日期查詢 35 5.6.3 銷售排行 35 5.7 進(jìn)貨/需求管理模塊設(shè)計(jì) 36 5.8 系統(tǒng)管理模塊設(shè)計(jì) 37 結(jié) 論 40 致 謝 41 參考文獻(xiàn) 42 基于JSP的醫(yī)藥管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 1 緒論 1.1 系統(tǒng)開發(fā)背景 當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中都離不開信息的處理,這正是計(jì)算機(jī)被廣泛用于信息管理系統(tǒng)的原因。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工

12、作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分的發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。 隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的蓬勃發(fā)展和人們對(duì)醫(yī)藥產(chǎn)品需求的迅速增加,醫(yī)藥行業(yè)正處于一個(gè)高速發(fā)展的時(shí)期。行業(yè)的快速發(fā)展必然導(dǎo)致競(jìng)爭(zhēng)的加劇,想要在激烈的市場(chǎng)競(jìng)爭(zhēng)中謀求發(fā)展,客觀上要求企業(yè)必須加強(qiáng)內(nèi)部管理,提高運(yùn)營(yíng)效率。另外,由于醫(yī)藥產(chǎn)品種類繁多,銷售模式特殊,業(yè)務(wù)量大,單憑手工管理已很難適應(yīng)工作的需要。醫(yī)藥作為一個(gè)關(guān)系人們健康的特殊行業(yè),國(guó)家對(duì)醫(yī)藥行業(yè)又有一些不同于其他行業(yè)的管理政策,這些都加大了管理的難度。如何盡快建立和完善現(xiàn)代企業(yè)的信息

13、管理機(jī)制問題,已成為醫(yī)藥企業(yè)發(fā)展的關(guān)鍵所在。 1.2 系統(tǒng)開發(fā)意義 根據(jù)實(shí)際情況和系統(tǒng)的開發(fā)背景來看,開發(fā)本醫(yī)藥管理系統(tǒng)的意義在于:能夠集中處理藥品的進(jìn)銷存業(yè)務(wù),提供快速的藥品查詢功能、快速的統(tǒng)計(jì)藥品信息、銷量信息,對(duì)藥品進(jìn)行高效的管理以滿足管理者和消費(fèi)者的需求。 1.3 文章內(nèi)容安排 本文主要闡述了本醫(yī)藥管理系統(tǒng)的整體開發(fā)過程。介紹了系統(tǒng)的開發(fā)環(huán)境以及開發(fā)工具,對(duì)于設(shè)計(jì)思想和設(shè)計(jì)流程也做出了全面的敘述,在數(shù)據(jù)庫(kù)各個(gè)數(shù)據(jù)表之間的具體關(guān)聯(lián)方面也做出了詳細(xì)說明,并且具體剖析了系統(tǒng)各個(gè)功能的實(shí)現(xiàn)過程以及詳細(xì)設(shè)計(jì)過程。具體內(nèi)容安排如下: 第一章:介紹系統(tǒng)的開發(fā)背景和開發(fā)意

14、義,以及文章的內(nèi)容安排; 第二章:介紹系統(tǒng)開發(fā)的硬件環(huán)境和軟件環(huán)境,以及開發(fā)工具和核心技術(shù); 第三章:對(duì)系統(tǒng)進(jìn)行需求分析,主要對(duì)系統(tǒng)進(jìn)行可行性分析,明確系統(tǒng)要實(shí)現(xiàn)的目標(biāo)和所完成的功能; 第四章:完成系統(tǒng)的詳細(xì)設(shè)計(jì),包括系統(tǒng)功能結(jié)構(gòu)圖,業(yè)務(wù)流程圖以及數(shù)據(jù)庫(kù)的E-R圖; 第五章:完成系統(tǒng)的詳細(xì)實(shí)現(xiàn),包括公共類的設(shè)計(jì)和各個(gè)模塊的設(shè)計(jì)。 2 系統(tǒng)開發(fā)環(huán)境和開發(fā)工具簡(jiǎn)介 2.1 系統(tǒng)開發(fā)環(huán)境 硬件平臺(tái): CPU:2.00GHz 內(nèi)存:2G 軟件平臺(tái): 操作系統(tǒng):Windows XP 數(shù)據(jù)庫(kù):MySQL Server 5.0 開發(fā)工具:MyEclipse

15、 8.6 開發(fā)工具包:JDK 1.6 JSP服務(wù)器:Tomcat 7.0 瀏覽器:IE 8 2.2 系統(tǒng)開發(fā)工具簡(jiǎn)介 2.2.1 MySQL數(shù)據(jù)庫(kù)介紹 MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。而2009年,SUN又被Oracle收購(gòu)。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)。這樣就增加了速度并提高了靈活性。SQL是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低

16、,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。 2.2.2 JSP技術(shù)概述 JSP技術(shù)使用Java編程語言編寫XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等

17、,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。 JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο螅哂衅脚_(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 自JSP推出后,眾多大公司都支持JSP技

18、術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。 3 系統(tǒng)需求分析 3.1 可行性分析 可行性分析是在進(jìn)行初步調(diào)查后所進(jìn)行的對(duì)系統(tǒng)開發(fā)的必要性和可能性的研究,所以也稱為可行性研究。所謂可行性應(yīng)該包括必要性和可能性兩個(gè)方面。沒有必要性的項(xiàng)目是不應(yīng)該進(jìn)行的。一般地,軟件領(lǐng)域的可行性分析主要考慮兩個(gè)因素:技術(shù)可行性和經(jīng)濟(jì)可行性。 3.1.1 技術(shù)可行性 根據(jù)系統(tǒng)目標(biāo)來衡量所需的技術(shù)是否具備,本醫(yī)藥管理系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)管理和查詢的系統(tǒng),軟件技術(shù)方面采用的是 Microsoft Windows XP Professional版的操

19、作系統(tǒng),MySQL Server 5.0為后臺(tái)數(shù)據(jù)庫(kù)開發(fā)工具, MyEclipse 8.6集成開發(fā)工具。JDK 1.6開發(fā)工具包,Tomcat 7.0服務(wù)器,IE 8瀏覽器以及JSP技術(shù),能夠?qū)崿F(xiàn)本醫(yī)藥管理系統(tǒng),以滿足用戶需求。 3.1.2 經(jīng)濟(jì)可行性 醫(yī)藥進(jìn)銷存管理已成為醫(yī)藥管理工作中不可缺少的部分,開發(fā)一個(gè)醫(yī)藥管理系統(tǒng)具有很強(qiáng)的經(jīng)濟(jì)價(jià)值。本醫(yī)藥管理系統(tǒng)提供快速的藥品查詢功能、快速的統(tǒng)計(jì)藥品信息、銷售信息等,對(duì)藥品進(jìn)行高效的管理以滿足管理者的需求。所以,本醫(yī)藥管理系統(tǒng)在經(jīng)濟(jì)型上有很強(qiáng)的實(shí)際價(jià)值。 3.2 系統(tǒng)功能需求 根據(jù)實(shí)際情況分析,本醫(yī)藥管理系統(tǒng)的應(yīng)具有主要功能包括:

20、 (1) 醫(yī)藥管理:添加藥品、查看藥品、高級(jí)查詢、查看庫(kù)存; (2) 類別管理:添加類別、查看類別、類別統(tǒng)計(jì); (3) 購(gòu)買藥品:選購(gòu)藥品、查看選購(gòu); (4) 銷售管理:查看明細(xì)、今日明細(xì)、日期查詢、銷售排行; (5) 進(jìn)貨/需求管理:添加進(jìn)貨、查看進(jìn)貨; (6) 系統(tǒng)管理:添加管理員、查看所有管理員、修改密碼、系統(tǒng)初始化、退出系統(tǒng)。 3.3 數(shù)據(jù)流圖 數(shù)據(jù)流程圖(Data Flow Diagram,簡(jiǎn)稱DFD)是數(shù)據(jù)流程分析所使用的主要工具之一,是組織中信息運(yùn)動(dòng)的抽象,是管理信息系統(tǒng)邏輯模型的主要形式。這個(gè)模型不涉及硬件、軟件、數(shù)據(jù)結(jié)構(gòu)與文件組織,它與對(duì)系統(tǒng)的物

21、理描述無關(guān),只是用一種圖形及與此相關(guān)的注釋來表示系統(tǒng)的邏輯模型,即所開發(fā)的系統(tǒng)在管理信息處理方面要做什么。醫(yī)藥管理系統(tǒng)零層數(shù)據(jù)流圖如圖3-1所示。 P 醫(yī)藥管理系統(tǒng) F1藥品信息 F2藥品類別信息 F3藥品銷售信息 F4用戶信息 D1 藥品信息表 D2 藥品類別信息表 D3 銷售明細(xì)信息表 D4 用戶信息表 圖3-1 醫(yī)藥管理系統(tǒng)零層數(shù)據(jù)流圖 F1.1藥品信息添加 F1.2藥品信息刪除 F1.3藥品信息修改 醫(yī)藥管理 P1 F1.4藥品信息查詢 D1 藥品信息表 醫(yī)

22、藥管理系統(tǒng)一層數(shù)據(jù)流圖如圖3-2、圖3-3、圖3-4、圖3-5所示。 圖3-2 醫(yī)藥管理系統(tǒng)一層數(shù)據(jù)流圖 F2.1藥品類別信息添加 F2.2藥品類別信息刪除 F2.3藥品類別信息修改 類別管理 P2 F2.4藥品類別信息統(tǒng)計(jì) D2 藥品類別信息表 2 藥品類別信息表 D1 P 醫(yī)藥管理系統(tǒng) 信息 F3.1購(gòu)買藥品信息添加 F3.2購(gòu)買藥品信息刪除 F3.3藥品銷售信息查詢 銷售管理 P3 F3.4藥品銷售信息統(tǒng)

23、計(jì) D3 銷售明細(xì)信息表 2 藥品類別信息表 D1 P 醫(yī)藥管理系統(tǒng) 信息 圖3-3 醫(yī)藥管理系統(tǒng)一層數(shù)據(jù)流圖 F4.1用戶信息添加 F4.2用戶信息刪除 F4.3用戶信息修改 系統(tǒng)管理 P4 D4 用戶信息表 2 藥品類別信息表 D1 P 醫(yī)藥管理系統(tǒng) 信息 圖3-4 醫(yī)藥管理系統(tǒng)一層數(shù)據(jù)流圖 圖3-5 醫(yī)藥管理系統(tǒng)一層數(shù)據(jù)流圖 4 系統(tǒng)總體設(shè)計(jì) 4.1 系統(tǒng)結(jié)構(gòu)設(shè)

24、計(jì) 在開發(fā)項(xiàng)目之前,首先要對(duì)軟件的結(jié)構(gòu)進(jìn)行設(shè)計(jì),也稱之為軟件架構(gòu),此過程是對(duì)軟件的整體結(jié)構(gòu)的設(shè)計(jì)。如軟件的邏輯分層結(jié)構(gòu)、結(jié)構(gòu)的實(shí)現(xiàn)、數(shù)據(jù)庫(kù)等等,特別是在Java的大型項(xiàng)目中,還需要設(shè)計(jì)出程序中包結(jié)構(gòu)及接口等,非常復(fù)雜,需要程序員進(jìn)行全面的考慮。對(duì)于醫(yī)藥管理系統(tǒng)的整體設(shè)計(jì):邏輯分層結(jié)構(gòu)設(shè)計(jì)、定義ActionForm、持久層結(jié)構(gòu)設(shè)計(jì)、業(yè)務(wù)層結(jié)構(gòu)設(shè)計(jì)、頁(yè)面結(jié)構(gòu)設(shè)計(jì)以及數(shù)據(jù)庫(kù)設(shè)計(jì)。系統(tǒng)功能結(jié)構(gòu)圖如圖4-1所示。 醫(yī)藥管理系統(tǒng) 醫(yī)藥管理 類別管理 購(gòu)買藥品 銷售管理 進(jìn)貨/需求管理 系統(tǒng)管理 添加藥品 查看藥品 高級(jí)查詢 查看庫(kù)存 添加類別 查看類別 類別統(tǒng)計(jì) 選購(gòu)藥

25、品 查看選購(gòu) 查看明細(xì) 今日明細(xì) 日期查詢 銷售排行 添加進(jìn)貨 查看進(jìn)貨 添加管理員 查看管理員 修改密碼 系統(tǒng)初始化 退出系統(tǒng) 圖4-1 系統(tǒng)功能結(jié)構(gòu)圖 4.1.1 邏輯分層結(jié)構(gòu)設(shè)計(jì) 遵循MVC結(jié)構(gòu)進(jìn)行分析,醫(yī)藥管理系統(tǒng)可分為四層結(jié)構(gòu),分別為表示層、業(yè)務(wù)邏輯層、持久層與數(shù)據(jù)庫(kù)層,四層結(jié)構(gòu)圖如圖4-2所示。 醫(yī)藥管理系統(tǒng) 表示層 (Struts框架) 業(yè)務(wù)邏輯層 (Struts框架) 持久層 (Hibernate框架) 數(shù)據(jù)庫(kù)層 (MySQL數(shù)據(jù)庫(kù)) 圖4-2 四層結(jié)構(gòu)圖 對(duì)于四層結(jié)構(gòu)的具體實(shí)現(xiàn)如圖4-3所示。 視圖JSP/Act

26、ionForm Struts標(biāo)簽 控制器 Action struts-config.xml 持久化 Hibernate API hibernate.cfg.xml 醫(yī)藥管理系統(tǒng) MySQL數(shù)據(jù)庫(kù) 圖4-3 四層結(jié)構(gòu)實(shí)現(xiàn)圖 4.1.2 定義ActionForm ActionForm是簡(jiǎn)單的JavaBean,它主要用來保存用戶所輸入的表單數(shù)據(jù),ActionForm要獲取這些數(shù)據(jù)需要通過ActionForm對(duì)象進(jìn)行傳遞。AcitonFomr對(duì)表單數(shù)據(jù)進(jìn)行了封裝,在Jsp頁(yè)面與Action對(duì)象中提供了交互訪問的方法。在使用過程中,可

27、通過繼承org.apache.struts.ActionForm對(duì)象來創(chuàng)建需要的ActionForm對(duì)象,項(xiàng)目中所涉及到的ActionForm對(duì)象如圖4-4所示。 ActionForm com.lyq.struts.form UserForm SellDetailForm CategoryForm MedicienForm 用戶 銷售明細(xì) 類別 藥品 圖4-4 ActionForm對(duì)象圖 4.1.3 持久層結(jié)構(gòu)設(shè)計(jì) 持久層結(jié)構(gòu)通過Hibernate框架進(jìn)行設(shè)計(jì),由于Hibernate對(duì)不同對(duì)象的增、刪、

28、改、查操作都具有一定的共性,如添加數(shù)據(jù)使用sava()方法、刪除數(shù)據(jù)使用delete()方法等,項(xiàng)目中將這些具有共性的操作抽取出來,封裝成一個(gè)類,其他數(shù)據(jù)庫(kù)操作對(duì)象可繼承此類來?yè)碛羞@些方法,從而減少程序中的多余代碼,持久層結(jié)構(gòu)設(shè)計(jì)圖如圖4-5所示。 com.lyq.dao SupperDao save(in obj:Object):void saveOrUpdate(in obj:Object):void delete(in obj:Object):void findByHQL(in hql:String):List deleteByHQL(in hql:String

29、):void uniqueResult(in hql:String,in where:Object[]):Object findPaging(in hql:String,in offset:int,in length:int,in where:Object[]):List CategoryDao MedicineDao SellDao UserDao 圖4-5 持久層結(jié)構(gòu)設(shè)計(jì)圖 4.1.4 業(yè)務(wù)層結(jié)構(gòu)設(shè)計(jì) 業(yè)務(wù)層結(jié)構(gòu)主要通過Stuts框架進(jìn)行設(shè)計(jì),由Struts的中央控制器對(duì)各種請(qǐng)求操作進(jìn)行控制,并通過相應(yīng)的Action對(duì)其進(jìn)行業(yè)務(wù)處

30、理,項(xiàng)目中所用到的Action對(duì)象及關(guān)系如圖4-6所示。 Action DispatchAction com.lyq.struts.action LoginAction RequireAction SellAction BaseAction LookupDispatchAction CategoryAction SystemAction MedicineAction DeleteAction DeleteReqMedAction DeleteMedicineAction 圖4-6 Action對(duì)象關(guān)系圖

31、 4.1.5 頁(yè)面結(jié)構(gòu)設(shè)計(jì) 醫(yī)藥管理系統(tǒng)的頁(yè)面結(jié)構(gòu)采用框架進(jìn)行設(shè)計(jì),通過HTML語言中的呃標(biāo)簽及標(biāo)簽將頁(yè)面分成三個(gè)部分,分別為頁(yè)面頭部、頁(yè)面導(dǎo)航及內(nèi)容頁(yè)面,頁(yè)面結(jié)構(gòu)圖如圖4-7所示。 頁(yè)面頭部 頁(yè)面導(dǎo)航 頁(yè)面內(nèi)容 圖4-7 頁(yè)面結(jié)構(gòu)圖 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì)的內(nèi)容是:對(duì)于一個(gè)確定的環(huán)境,進(jìn)行符合應(yīng)用語義的邏輯設(shè)計(jì),以及提供一個(gè)確定存貯結(jié)構(gòu)和物理設(shè)計(jì),建立實(shí)現(xiàn)系統(tǒng)目標(biāo),并能有效存取數(shù)據(jù)和數(shù)據(jù)模型。其主要任務(wù)是設(shè)計(jì)出能滿足各種應(yīng)用要求的數(shù)據(jù)模型。 4.2.1 實(shí)體對(duì)象設(shè)計(jì) 在使用Hi

32、bernate框架的項(xiàng)目中,實(shí)體對(duì)象的確立是項(xiàng)目中的關(guān)鍵,實(shí)體對(duì)象與數(shù)據(jù)庫(kù)中的數(shù)據(jù)表相對(duì)應(yīng),并通過O/R映射建立實(shí)體與數(shù)據(jù)庫(kù)的聯(lián)系,Hibernate完全通過操作實(shí)體來操作數(shù)據(jù)庫(kù),所以首先要確定項(xiàng)目中的實(shí)體對(duì)象。在醫(yī)藥管理系統(tǒng)中,實(shí)體對(duì)象及其關(guān)系如圖4-8所示。 com.lyq.persistence 銷售明細(xì) 藥品信息 藥品類別 用戶 Category Medicine SellDetail 多對(duì)一 一對(duì)多 多對(duì)一 User SellDetail.hbm.xml User.hbm.xml Medicine.hb

33、m.xml Category.hbm.xml 圖4-8 實(shí)體對(duì)象關(guān)系圖 4.2.2 數(shù)據(jù)庫(kù)表結(jié)構(gòu) 本系統(tǒng)的數(shù)據(jù)庫(kù)表設(shè)計(jì)主要包括:用戶信息表、藥品信息表、藥品類別信息表、銷售明細(xì)信息表。 (1) 用戶信息表(tb_user),如表4.1所示。 表4.1 用戶信息表 字段名 數(shù)據(jù)類型 長(zhǎng)度 是否主鍵 允許空 描述 id integer — 是 否 自動(dòng)編號(hào) username varchar 50 否 否 用戶名 password varchar 50 否 否 密碼 createTime datetime —

34、 否 是 創(chuàng)建時(shí)間 (2) 藥品信息表(tb_medicine),如表4.2所示。 表4.2 藥品信息表 字段名 數(shù)據(jù)類型 長(zhǎng)度 是否主鍵 允許空 描述 id integer — 是 否 自動(dòng)編號(hào) medNo varchar 100 否 否 藥品編碼 Name varchar 200 否 否 藥品名稱 factoryAdd varchar 200 否 是 出廠地址 description mediumtext — 否 是 藥品描述 price double — 否 否 藥品單價(jià) medCount

35、integer — 否 是 藥品數(shù)量 reqCount integer — 否 是 需求數(shù)量 photoPath varchar 255 否 是 藥品圖片 categoryId datetime — 否 是 類別編號(hào) (3) 藥品類別信息表(tb_category),如表4.3所示。 表4.3 藥品類別信息表 字段名 數(shù)據(jù)類型 長(zhǎng)度 是否主鍵 允許空 描述 id integer — 是 否 自動(dòng)編號(hào) name varchar 100 否 否 類別名稱 description text — 否

36、 是 類別描述 createTime datetime — 否 是 創(chuàng)建時(shí)間 (4) 銷售明細(xì)信息表(tb_selldetail),如表4.4所示。 表4.4 藥品銷售信息表 字段名 數(shù)據(jù)類型 長(zhǎng)度 是否主鍵 允許空 描述 id integer — 是 否 自動(dòng)編號(hào) sellName varchar 200 否 否 藥品名稱 sellPrice double — 否 否 藥品單價(jià) sellCount integer — 否 否 銷售數(shù)量 sellTime datetime — 否 否 銷售時(shí)間 med

37、id integer — 否 是 藥品編號(hào) userid integer — 否 是 用戶編號(hào) 4.2.3 數(shù)據(jù)庫(kù)E-R圖 (1) 根據(jù)實(shí)際需求和設(shè)計(jì)規(guī)劃得出的實(shí)體有:用戶實(shí)體、藥品實(shí)體、類別實(shí)體、銷售明細(xì)實(shí)體,各實(shí)體的屬性圖如圖4-9、圖4-10、圖4-11、圖4-12所示。 用戶 用戶名 密碼 創(chuàng)建時(shí)間 圖4-9 用戶實(shí)體屬性圖 藥品 藥品編碼 藥品名稱 藥品數(shù)量 藥品單價(jià) 出廠地址 藥品描述 藥品類別 藥品圖片 需求數(shù)量 圖4-10 藥品實(shí)體屬性圖 類別 類別名 創(chuàng)建時(shí)間 類別描述 圖4

38、-11 類別實(shí)體屬性圖 銷售明細(xì) 藥品編碼 藥品名稱 藥品單價(jià) 銷售數(shù)量 銷售時(shí)間 操作員 銷售金額 圖4-12 銷售明細(xì)實(shí)體屬性圖 (2) 各實(shí)體之間的關(guān)系E-R圖如圖4-13所示。 N 藥品 類別 用戶 銷售明細(xì) 管理 M N M 1 N N 添加 銷售 管理 管理 M M N 圖4-13 各實(shí)體關(guān)系E-R圖 5 系統(tǒng)詳細(xì)設(shè)計(jì) 在編寫代碼之前,需要對(duì)項(xiàng)目做出一些準(zhǔn)備工作,如項(xiàng)目環(huán)境的搭建、項(xiàng)目所涉及到的第三方類庫(kù)的支持、web.xml的配置等。在醫(yī)藥進(jìn)銷存管理系統(tǒng)中,主要涉及到Struts框

39、架Hibernate框架及JFreeChart組件的應(yīng)用,因此在開發(fā)項(xiàng)目之前,需要添加他們的類庫(kù)支持。 (1) 配置web.xml,主要代碼如下: action org.apache.struts.action.ActionServlet action *.do

40、rvlet-mapping> (2) 配置struts-config.xml,主要代碼如下:

41、ean name="sellDetailForm"type="com.lyq.struts.form.SellDetailForm"/> (3) 配置hibernate.cfg.xml,主要代碼如下: org.hibernate.dialect.MySQLDialect jdbc:mysql://localhost:3306

42、/db_database25 root root com.mysql.jdbc.Driver update tru

43、e

44、n> 5.1 公共類設(shè)計(jì) 在Java程序開發(fā)中,如果一個(gè)功能反復(fù)被調(diào)用,可以將這個(gè)功能抽取出來封裝為一個(gè)類做為公共類,在需要此功能的地方通過繼承此類進(jìn)行實(shí)現(xiàn)。公共類實(shí)質(zhì)是代碼的重用的一種方式,在面向?qū)ο蟮拈_發(fā)模式中,經(jīng)常被使用,它可以簡(jiǎn)化程序中的代碼提高程序的可讀性,醫(yī)藥管理系統(tǒng)中的公共類設(shè)計(jì)如下。 5.1.1 Hibernate過濾器 在Web項(xiàng)目中,以普通方式使用Hibernate將無法解決Hibernate延遲加載,如下圖所示。當(dāng)有一個(gè)業(yè)務(wù)請(qǐng)求查詢數(shù)據(jù)時(shí),首先要開啟Session對(duì)象,然后Hibernate對(duì)數(shù)據(jù)進(jìn)行查詢,再關(guān)閉Session對(duì)象,然后通過Jsp頁(yè)面來

45、顯示數(shù)據(jù)。在這一過程中,如果查詢數(shù)據(jù)時(shí)使用了延遲加載,當(dāng)Jsp頁(yè)面顯示數(shù)據(jù)信息時(shí),Hibernate將拋出異常信息,因此此時(shí)Session已經(jīng)關(guān)閉,Hibernate不再對(duì)數(shù)據(jù)進(jìn)行操作。通過過濾器管理Hibernate的Session對(duì)象則可以避免此問題。主要代碼如下: public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException { try { chain.doFilter(request, res

46、ponse); } finally{ Session session = (Session)threadLocal.get(); if(session != null){ if(session.isOpen()){ session.close(); } threadLocal.remove(); } } } public static Session getSession() { Session session = (Session)threadLocal.get(); if (session == null) { s

47、ession = factory.openSession(); threadLocal.set(session); } return session; } } 5.1.2 SuperDao類 SuperDao類為項(xiàng)目中所有數(shù)據(jù)庫(kù)操作的父類,此類中封裝了數(shù)據(jù)庫(kù)操作的常用方法。在此類中,由于Hibernate對(duì)數(shù)據(jù)的操作都需要用到Session接口,此類中定義了一個(gè)protected類型的Session對(duì)象,為其子類提供方便。主要代碼如下: public class SupperDao { protected Session session = null;

48、 public void save(Object obj){ try { session = HibernateFilter.getSession(); session.beginTransaction(); session.save(obj); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }

49、 } public void delete(Object obj){ try { session = HibernateFilter.getSession(); session.beginTransaction(); session.delete(obj); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(

50、); } } } 5.1.3 BaseAction類 BaseAction類是業(yè)務(wù)層有一個(gè)超類對(duì)象,它繼承了Struts的DispatchAction類,同時(shí)還為子類對(duì)象提供公用方法。 Struts的DispatchAction類繼承Action類,此類在處理請(qǐng)求時(shí)首先要執(zhí)行execute()方法,然后通過控制器再轉(zhuǎn)發(fā)到相應(yīng)的方法進(jìn)行業(yè)務(wù)處理,如果對(duì)系統(tǒng) 中涉及到的Action都編寫一個(gè)驗(yàn)證方法,程序代碼的重負(fù)性太高,則不能體現(xiàn)出面向?qū)ο蟮脑O(shè)計(jì)模式,所以將其單獨(dú)封裝BaseAction類中,此類通過重寫Action類的execute()方法對(duì)用戶身份進(jìn)行驗(yàn)證。主要代碼如

51、下: public class BaseAction extends DispatchAction { protected int recPerPage = 3; protected Locale locale = null; protected MessageResources message = null; public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)

52、 throws Exception { this.locale = this.getLocale(request); this.message = this.getResources(request); if (request.getSession().getAttribute("user") == null) { return mapping.findForward("login"); } return super.execute(mapping, form, request, response); } } 5.1.4 Delete

53、Action類 公共類DeleteAction主要用于項(xiàng)目中LookupDispatchAction的請(qǐng)求進(jìn)行處理,它繼承LookupDispatchAction類,此類中同樣重寫了execute()方法對(duì)用戶身份做出驗(yàn)證,當(dāng)用戶身份不失敗時(shí),將進(jìn)行錯(cuò)誤處理。同時(shí),此類還重寫了LookupDispatchAction類中的getKeyMethodMap()方法,添加了兩個(gè)按鈕對(duì)象的Key。主要代碼如下: public class DeleteAction extends LookupDispatchAction{ public ActionForward execute(ActionM

54、apping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception { if(request.getSession().getAttribute("user") == null){ return mapping.findForward("login"); } return super.execute(mapping, form, request, response); } protected Map ge

55、tKeyMethodMap() { Map map = new HashMap(); map.put("button.delete.selected", "selected"); map.put("button.delete.all", "all"); return map; } } 5.1.5 字符串工具類 在一個(gè)Web項(xiàng)目中,字符串是經(jīng)常被操作的對(duì)象,為簡(jiǎn)化程序的代碼及提高程序的可讀性,對(duì)經(jīng)常用到的字符串處理方法,可以封裝一個(gè)字符串工具類對(duì)其進(jìn)行操作。比如Jsp頁(yè)面的多選框,它提交的參數(shù)值為數(shù)組類型,在數(shù)據(jù)庫(kù)的操作過程中需要將其轉(zhuǎn)換為字符串類型;在超鏈接

56、中,如果加入中文參數(shù)將不能被瀏覽器解析,需要對(duì)其進(jìn)行一定的處理才可以使用。類似于這種操作,在程序中使用的非常頻繁,將其封裝為一個(gè)公共類中,是一種良好的決解方案。 在醫(yī)藥管理系統(tǒng)中,封裝了一個(gè)名稱為StringUtil的字符串工具類,用于對(duì)字符的特殊處理,此類中均為靜態(tài)方法。主要代碼如下: public class StringUtil { public static String encodeURL(String s){ try { s = URLEncoder.encode(s,"GBK"); } catch (Exception e) { e.prin

57、tStackTrace(); } return s; } public static String encodeZh(String s){ try { s = new String(s.getBytes("iso-8859-1"),"GBK"); } catch (Exception e) { e.printStackTrace(); } return s; } } 5.2 系統(tǒng)登陸模塊設(shè)計(jì) 系統(tǒng)登錄是一個(gè)對(duì)用戶身份驗(yàn)證的過程,只有登錄成功的用戶才可以對(duì)系統(tǒng)進(jìn)行操作,否則不能對(duì)系統(tǒng)進(jìn)行管理維護(hù),它是系統(tǒng)的一道

58、安全門。 (1) 用戶登錄頁(yè)面如圖5-1所示。 圖5-1 登錄頁(yè)面圖 (2) 用戶登錄時(shí)查詢用戶登錄信息,主要代碼如下: public User login(String userName,String password){ User user = null; try { session = HibernateFilter.getSession(); session.beginTransaction(); String hql = "from User u where u.username=? and u.password=?"; Query q

59、uery =session.createQuery(hql).setParameter(0,userName). setParameter(1, password); user = (User)query.uniqueResult(); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } return user; } (3) 處理用戶登錄請(qǐng)求的主

60、要代碼如下: public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception { UserForm uf = (UserForm) form; String userName = uf.getUsername(); String password = uf.g

61、etPassword(); User user = null; if (userName != null && password != null) { UserDao userDao = new UserDao(); user = userDao.login(userName, password); } if (user != null) { request.getSession().setAttribute("user", user); return mapping.findForward("manage"); } else { re

62、quest.setAttribute("error", "error"); return mapping.findForward("loginFail"); } } } 5.3 醫(yī)藥管理模塊設(shè)計(jì) 藥品信息管理主要對(duì)藥品基本信息的維護(hù),此模塊包含藥品信息的添加、刪除、查詢等操作。主要代碼如下: public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws E

63、xception { Medicine med = null; MedicineForm df = (MedicineForm) form; MedicineDao dao = new MedicineDao(); if (df.getMedCount() == 0) { df.setMedCount(1); } med = new Medicine(); BeanUtils.copyProperties(med, df); CategoryDao cd = new CategoryDao(); Category category

64、= cd.loadCategory(df.getCategoryId()); med.setCategory(category); FormFile photo = df.getPhoto(); try { String fname = photo.getFileName(); if (fname.indexOf(".") != -1) { String endWith =fname.substring(fname.lastIndexOf("."), fname.length()); SimpleDateFormat sdf = new Sim

65、pleDateFormat ("yyyyMMddHHmmssSSS"); fname = sdf.format(new Date()) + endWith; } OutputStream out = new FileOutputStream(realPath + "/" + fname); out.write(photo.getFileData()); out.flush(); out.close(); med.setPhotoPath(fname); } catch (Exception e) { e.printStack

66、Trace(); } } dao.saveOrUpdate(med); return mapping.findForward("addSuccess"); } 5.3.1 藥品對(duì)象持久層設(shè)計(jì) MedicineDao類是藥品對(duì)象的數(shù)據(jù)庫(kù)操作類,它繼承SuperDao類。此類主要包含三個(gè)方法,分別為loadMedicine()、loadMedicineCategory()、findMedicineByMedNo()、其中l(wèi)oadMedicine()方法與findMedicineByMedNo()、用于根據(jù)藥品id及藥品編碼查詢藥品信息,loadMedicineAndCategory()用于查詢藥品信息與藥品類別信息,此方法使用內(nèi)聯(lián)接對(duì)藥品信息表與藥品類別表進(jìn)行聯(lián)合查詢,它可以減少SQL語句的數(shù)量。 5.3.2 藥品信息的添加與修改 藥品編碼是藥品對(duì)象的一個(gè)標(biāo)識(shí),當(dāng)添加一個(gè)藥品信息時(shí)需要判斷藥品是否已經(jīng)在數(shù)據(jù)庫(kù)中存在,如果存在則只需要更新藥品的數(shù)量即可。修改藥品與添加藥品的處理過程相同。添加藥品頁(yè)面如圖5-2、圖5-3、圖5-4所示。 圖5-

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!