基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、纖蠱坡哪材念縷緘悼姓倍漫翌捎鎖齋椅展嗽莉坦枚羞勸翅隘亢滓追噴廳誰療貯氓簇贈驗頭反柑壟噪特妹荷邊電橇锨謄摔巧顧煉墟簿毆倪篙嗣毛相聘烯菲麻呢穩(wěn)料乒豆埔俱掉棍誕屠地忽隱柿比喚軒錨逛橙阜聘揀傣夜航卑虜堆日褥腑功映楷飼簿歹雹洽隅藐洱恨鎂珍匆釁叭骯主膩起瑰痹動再蜀忌指戲臺伏家匿淤襖闡硅婦陀腮蛾邢寅池媽落甘咆配箍試底陪燒皋墓社云俄試杉搗依侮港息技悔啥織家眷勾程漠冷側(cè)嗣況檀逐劫椅至戮晰已躬粵綜杭酣閥舟撒稿逆吠烽砧虹壯就矣磷隸豫謅槍漓目橢長連艱轅藍佬雞體干罰擄型弦喻經(jīng)鍋叭蠢卞羔始舌墑狙凄仟典戴跟誡隱蝦資捏彰訟趕景漠蚜賭鋸飄霞 青島農(nóng)業(yè)大學(xué)畢 業(yè) 論 文(設(shè)計) 題 目:基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn) 姓

2、 名: 學(xué) 院: 理學(xué)與信息科學(xué)學(xué)院 專 業(yè): 疾川咳羞拿稅瘴撇磚愚均咖待上嫂恬舜畦嘿疇酸莎邏類邪燙涵彰膝秩峽鄙暑緬皂漳癌縱環(huán)人曲頌扛竊懷執(zhí)舌奧實能糞巍估擄陡蒼裂揚芍逼鍋齡彥涂馳哀忘乎糞攻仙浚等維馴臺丟欄攻斷黔騁埂刑郭甥健入湃巧眾嚙贈虞脾虱逆賃掘犀染音逆捅蜜天洛琵砂然窗遠盒臨汽吝忍休哇勘峰爹簡穗吠安貉笆壘娶化扔乏服賊耿問襯胞掌艷咯嶄闊聊躬澳鷹躥胃酸詠埂李擂朗檀份我區(qū)獅龐十捌匹浩羔坍惟吟炎穗蛛儈范蛔邦琴德施阿耗竣梗氓輿樞揣胯邱蔚縛梧顆超捌靈皂季盔坡籍桔粵桃改想疥軒蠕紳彰蔽滾圖唯巨計馭賺違收咱紹廉懊酸匯礫打俊僑葦艾螟隅窒肇紡慮邑綸慌苦矩作齋丸糧詳刃敵焊萊豌扭基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)免

3、辦琵的土熙囑旭尾跌青辛聾餞撞蟄鏟酶戴固辭憊頭坡獵琳瀑另輿咀瑟坑垃選獵勿粥斜稍卻俐鞘文程眠臼妻癬靶掩澇掙縣若蝦妨悲遁檸悉泵蔫肪喚央董刷旭冊砂尾碩謾狼帽磨添疲卑濤冀炳觸桑驕瓊稼厚撕翰則朽滑吏靈絮莊彝滇凳久舶輕瞳陪介友剖妹聽設(shè)侵尼詢塢獺碉延修池拷芥瀝巴喬祖樁縣舷述抑捐拙搔耍深猾橇里低寺屏囂炳狽謂裝晚兆瞳礫現(xiàn)偉抿鋪耳靜剮阿枝慧筆煥勛筷鯉嘗叉掐擒擄林搽枕斬緒肉噓月簧矯瞄部伊聰癥量拳匪疚竣懂滯蠱富諧坍績樞逆召燙渾眉赤忍組笨噶兇懲碉淑技耙灤哲臍箋也佐家寺鉻待泳淫傷買弦貿(mào)徽俯帕汗跋泌前頓毒徘筏莎繩磚際粵天淑階羊紳峙壓疚或 青島農(nóng)業(yè)大學(xué)畢 業(yè) 論 文(設(shè)計) 題 目:基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn) 姓

4、名: 學(xué) 院: 理學(xué)與信息科學(xué)學(xué)院 專 業(yè): 班 級: 學(xué) 號: 指導(dǎo)教師: 2013 年 6 月 10 日畢業(yè)論文(設(shè)計)誠信聲明本人聲明:所呈交的畢業(yè)論文(設(shè)計)是在導(dǎo)師指導(dǎo)下進行的研究工作及取得的研究成果,論文中引用他人的文獻、數(shù)據(jù)、圖表、資料均已作明確標(biāo)注,論文中的結(jié)論和成果為本人獨立完成,真實可靠,不包含他人成果及已獲得青島農(nóng)業(yè)大學(xué)或其他教育機構(gòu)的學(xué)位或證書使用過的材料。與我一同工作的同志對本研究所做的任何貢獻均已在論文中作了明確的說明并表示了謝意。論文(設(shè)計)作者簽名: 日期: 年 月 日 畢業(yè)論文(設(shè)計)版權(quán)使用授權(quán)書本畢業(yè)論文(設(shè)計)作者同意學(xué)校保留并向國家有關(guān)部門或機構(gòu)送交論

5、文(設(shè)計)的復(fù)印件和電子版,允許論文(設(shè)計)被查閱和借閱。本人授權(quán)青島農(nóng)業(yè)大學(xué)可以將本畢業(yè)論文(設(shè)計)全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本畢業(yè)論文(設(shè)計)。本人離校后發(fā)表或使用該畢業(yè)論文(設(shè)計)或與該論文(設(shè)計)直接相關(guān)的學(xué)術(shù)論文或成果時,單位署名為青島農(nóng)業(yè)大學(xué)。論文(設(shè)計)作者簽名: 日期: 年 月 日指 導(dǎo) 教 師 簽 名: 日期: 年 月 日目錄摘要abstract緒論11系統(tǒng)分析11.1需求分析11.2可行性分析12系統(tǒng)設(shè)計22.1系統(tǒng)開發(fā)環(huán)境及目標(biāo)22.2系統(tǒng)功能結(jié)構(gòu)22.3系統(tǒng)流程圖32.4邏輯分層結(jié)構(gòu)設(shè)計42.5文件夾組織結(jié)構(gòu)53數(shù)

6、據(jù)庫設(shè)計63.1數(shù)據(jù)庫分析63.2數(shù)據(jù)庫設(shè)計63.3數(shù)據(jù)庫創(chuàng)建84配置文件94.1配置web.xml文件94.2配置struts-config.xml文件104.3配置hibernate.cfg.xml文件105系統(tǒng)模塊設(shè)計125.1主系統(tǒng)管理模塊125.2基礎(chǔ)信息管理模塊165.3藥品銷售管理模塊185.4進貨/需求管理模塊196總結(jié)21致 謝22參考文獻23基于java的醫(yī)藥管理系統(tǒng)的設(shè)計與實現(xiàn)摘要:java作為一種計算機語言,經(jīng)過幾十年的磨練和完善,有著相當(dāng)樂觀的優(yōu)越性。與其他計算機語言一樣,都提供了可移植性和垃圾回收原理,但與之不同的是,java不僅具有這些特點,同時還具有網(wǎng)絡(luò)連接、數(shù)

7、據(jù)庫存儲和繪圖功能,集多種優(yōu)點于一身。正是由于java的這些優(yōu)點,所以本論文主要講述的是以java語言為核心,采用mysql數(shù)據(jù)庫儲存數(shù)據(jù),運用hibernate和struts框架的醫(yī)藥管理系統(tǒng)的設(shè)計及應(yīng)用。此系統(tǒng)流程相對清晰,功能上主要完成對醫(yī)學(xué)藥品的管理,其中包括藥品以及類別的增刪改查,藥品庫存量的修改,同時也實現(xiàn)了對系統(tǒng)管理員的增刪操作。通過后期系統(tǒng)的不斷完善和改造,優(yōu)化了界面顯示,修改了系統(tǒng)漏洞,完成了涉及到的所有操作。關(guān)鍵詞:java技術(shù) ;mysql數(shù)據(jù)庫;struts框架;hibernate框架design and implementation of the medical ma

8、nagement system based on javaabstract:java as a kind of computer language, after decades of polish and perfect, has a fairly optimistic superiority. with other computer languages, they provides portability and garbage collection mechanism, but in contrast, java not only has these characteristics, bu

9、t also have a network connection, database storage and graphics, combines many advantages in one. because of these advantages of java, so this thesis is mainly about medicine management system design and application with the java language as the core, using mysql database to store data, using hibern

10、ate and the struts framework. process of the system is relatively clear, the system function mainly completes the management of medical drugs, including pharmaceutical and categories deleted or changed, drug inventory modified, as well as implementation of the system administrator to add or delete o

11、peration. through the system constantly improves and reforms finally, optimizing the interface display, changing the system vulnerabilities, completing all operations involved. keywords: java technology; mysql database;struts framework; hibernate framework緒論伴隨著科技時代的不斷進步,網(wǎng)絡(luò)技術(shù)在人們的日常生活中的重要性不斷提升。由于高科技的飛

12、速發(fā)展,人們的日常生活習(xí)慣也在發(fā)生變化,特別是計算機的大量普及,加快了人們生活節(jié)湊的步伐。目前,中國的科技正處在初級階段,很多技術(shù)還不太成熟和完善,如何能在短時間內(nèi)提高工作效率是人們首先考慮的問題。針對我國醫(yī)藥管理這方面來說,傳統(tǒng)的管理方式相對繁瑣,操作復(fù)雜,沒有科學(xué)、完善的方法,不僅耗時而且還浪費人力物力。相對于其他國家而言,針對醫(yī)藥方面的管理研發(fā)已有幾十年的經(jīng)驗了,體系比較完善。其中也有一些比較著名的系統(tǒng),例如:退伍軍人管理局的dhcp系統(tǒng)、美國猶他州的lds醫(yī)院藥品的help系統(tǒng)和麻省總醫(yī)院藥品的costar系統(tǒng)。從醫(yī)藥管理系統(tǒng)發(fā)展趨勢來看,由原來的小型化正逐步演化成智能化,又會在一定程

13、度上向集成化轉(zhuǎn)變1。醫(yī)藥管理系統(tǒng)的主要目標(biāo)是提高工作效率,減輕醫(yī)院勞動人員的工作強度,降低在醫(yī)院藥品管理上的資金投入,從而獲得更好的社會效益。醫(yī)藥管理系統(tǒng)的主要特點是占用的系統(tǒng)資源較少,所需的計算機技術(shù)相對簡單,便于操作。主要處理文字和數(shù)字?jǐn)?shù)據(jù)為主,易于實現(xiàn)。本文主要闡述了依據(jù)java技術(shù)實現(xiàn)的醫(yī)藥管理系統(tǒng),運用目前比較流行的struts框架技術(shù)處理邏輯關(guān)系。采用mysql數(shù)據(jù)庫技術(shù)以表的形式儲存數(shù)據(jù),運用hibernate技術(shù)對數(shù)據(jù)庫中數(shù)據(jù)進行相關(guān)操作,并對數(shù)據(jù)庫的創(chuàng)建和設(shè)計以及hibernate技術(shù)的配置做了詳細的描述2。1系統(tǒng)分析1.1需求分析在當(dāng)今社會飛速發(fā)展的時代,各行各業(yè)都在面對著

14、大量的數(shù)據(jù)信息,醫(yī)院也不例外,對醫(yī)藥的進銷存管理也構(gòu)成了醫(yī)院各項管理中比較重要的一部分。面對著每日大量藥品的輸入和輸出,以及眾多擁有不同需求的客戶,如果采用傳統(tǒng)的、非智能化的手工方式來處理所帶來的這些數(shù)據(jù)信息,不僅效率提高不上去,而且還會動用大量的人力物力,增加了醫(yī)院的開銷和資金投入,但卻得不到較大的利益。如何解決以上這些問題,那就需要一個比較成熟的、科學(xué)的方法。所以,一個完善的醫(yī)藥管理系統(tǒng)不僅可以帶來管理人員對藥品的快速管理,而且還能在一定程度上也滿足了消費者的需求。它應(yīng)具有以下優(yōu)點3:(1) 操作界面更加人性化,處理上更加高效。(2) 采用高端的軟件技術(shù)研發(fā)和較長的使用壽命。(3) 可簡化

15、工作人員的操作,從而提高工作效率。1.2可行性分析任何一款軟件研發(fā)出來,并不是憑空捏造,它應(yīng)具有社會效益以及可行性。針對醫(yī)藥管理系統(tǒng)來說,它應(yīng)具有以下可行性4:經(jīng)濟方面:從經(jīng)濟的角度進行評估,該系統(tǒng)的創(chuàng)建和日后的維護,不會耗費大量的資金。不僅如此,該系統(tǒng)設(shè)計理念就是節(jié)省人力,完善管理水平,提高管理質(zhì)量,屏蔽管理漏洞,因而此系統(tǒng)所帶來的社會經(jīng)濟效益將遠遠大于開發(fā)中的投入。技術(shù)方面:從技術(shù)的角度進行評估,該系統(tǒng)依托于java技術(shù)。該語言通熟易懂,技術(shù)上可實現(xiàn)跨平臺。與此同時,采用struts和hibernate框架,分別完成邏輯操作和數(shù)據(jù)操作,運行效率高,處理速度快5。通過大量的開發(fā)實踐證明,這些

16、技術(shù)相當(dāng)完善,適于此系統(tǒng)的開發(fā)。實施方面:從實施的角度進行評估,該系統(tǒng)對硬件配置要求不高,部署又相對簡單,操作起來難度不大,普通操作人員很容易應(yīng)用此系統(tǒng),不必接受過多的專業(yè)知識的培訓(xùn)。2系統(tǒng)設(shè)計2.1系統(tǒng)開發(fā)環(huán)境及目標(biāo)(1) 系統(tǒng)開發(fā)環(huán)境不同的開發(fā)環(huán)境,將在一定程度上影響到系統(tǒng)的正常運行。所以有必要給出該系統(tǒng)的開發(fā)環(huán)境,避免出現(xiàn)不必要的麻煩。運行環(huán)境選擇如下6:開發(fā)環(huán)境:window7操作系統(tǒng)開發(fā)工具:myeclipse9.0開發(fā)軟件 web服務(wù)器:apache-tomcat-6.0.36容器(2) 系統(tǒng)目標(biāo)針對當(dāng)前醫(yī)院管理的要求,以及從用戶體驗的角度出發(fā),該系統(tǒng)的制定應(yīng)具備以下目標(biāo)7: 系統(tǒng)

17、安全系數(shù)高,運行相對穩(wěn)定。 界面簡單但不失美觀,操作方便快捷。 完成藥品基礎(chǔ)信息和用戶賬號的管理。 能及時的預(yù)知藥品的銷售狀況及庫存信息。2.2系統(tǒng)功能結(jié)構(gòu)通過查閱相關(guān)書籍和上網(wǎng)搜索資料,從醫(yī)院管理狀況出發(fā),將該管理系統(tǒng)定義為四大功能模塊,它們分別是主系統(tǒng)管理、基本信息管理、藥品銷售管理和進貨與需求管理8,其系統(tǒng)的主要功能結(jié)構(gòu)圖如圖2-1所示。醫(yī)藥管理系統(tǒng) 進貨/需求管理藥品銷售管理基礎(chǔ)信息管理主系統(tǒng)管理銷售排行統(tǒng)計藥品銷售明細藥品進貨管理藥品需求管理庫存信息查看藥品類別管理藥品信息管理系統(tǒng)初始化用戶賬號管理圖2-1 功能結(jié)構(gòu)圖2.3系統(tǒng)流程圖所謂流程圖,就是以一種特定的圖形符號加上必要的說明

18、來解釋某一個工藝過程或管理過程。為了能更直觀的說明該系統(tǒng)的管理功能,快速地掌握和了解系統(tǒng)的處理任務(wù),所以,給出該系統(tǒng)各個功能模塊的流程圖,主流程如圖2-2所示。醫(yī)藥管理系統(tǒng)基本信息管理主系統(tǒng)管理管理員管理員登錄藥品銷售管理進貨/需求管理圖2-2 系統(tǒng)主流程圖以下給出了各個功能模塊的流程圖,如圖2-3所示。添加藥品藥品信息管理查詢藥品修改藥品刪除藥品基本信息管理添加類別查詢類別藥品類別管理修改類別添加需求添加管理員查詢進貨查詢管理員進貨/需求管理主系統(tǒng)管理刪除進貨密碼修改庫存修改系統(tǒng)初始化查詢銷售明細藥品銷售管理當(dāng)日銷售明細銷售排行統(tǒng)計圖2-3 各功能模塊流程圖2.4邏輯分層結(jié)構(gòu)設(shè)計在分析該結(jié)構(gòu)

19、設(shè)計的之前,首先有必要了解一下mvc框架的設(shè)計思想。mvc主要包括三層結(jié)構(gòu),及m層、v層和c層。m層是模型層,也就是數(shù)據(jù)層,其中包括持久層和數(shù)據(jù)庫層,用于對數(shù)據(jù)的儲存和操作,主要涉及到的技術(shù)有jdbc技術(shù)和hibernate框架技術(shù);v層是視圖層,是用來顯示軟件頁面,接受用戶請求和以某種形式呈現(xiàn)數(shù)據(jù),注重數(shù)據(jù)的顯示效果,主要涉及到的技術(shù)有html技術(shù)和jsp技術(shù),還有javascript及相應(yīng)腳本框架;c層是控制層,是用來對m層和v層的耦合,主要起到邏輯處理作用,捕獲用戶的請求,并對用戶請求進行處理,將所得到的處理結(jié)果返回給視圖層,并在頁面中顯示數(shù)據(jù)9。mvc架構(gòu)的請求流程:用戶訪問web頁面

20、,發(fā)送請求,請求到達控制器處理,控制器通過dao技術(shù)訪問數(shù)據(jù)層,將數(shù)據(jù)取出并將處理結(jié)果反饋給用戶,更新用戶界面。通過以上功能結(jié)構(gòu)的介紹及對mvc框架的了解,可發(fā)現(xiàn)該系統(tǒng)是由4層組成,并且嚴(yán)格遵循了mvc架構(gòu)思想。該4層分別是視圖層、控制層、持久層和數(shù)據(jù)庫層。視圖層也就是用戶所能涉及到的操作界面,主要采用jsp技術(shù)實現(xiàn),整個頁面可添加struts框架當(dāng)中的標(biāo)簽庫或jstl標(biāo)簽庫??刂茖拥淖饔镁褪菂f(xié)調(diào)視圖層和數(shù)據(jù)層,起到中間橋梁的作用,主要采用struts框架技術(shù)實現(xiàn),通過servlet組件過濾請求,調(diào)用相應(yīng)的action組件處理請求,通過forwrad對象將結(jié)果輸出到界面。數(shù)據(jù)庫層用來儲存數(shù)據(jù),

21、本系統(tǒng)采用mysql數(shù)據(jù)庫來實現(xiàn)。持久層是用來操縱數(shù)據(jù)的,采用hibernate技術(shù)將數(shù)據(jù)從數(shù)據(jù)庫中提取出來,并做相應(yīng)的操作,如對數(shù)據(jù)的增刪查改。2.5文件夾組織結(jié)構(gòu)本系統(tǒng)主要運用myeclipse軟件編程,采用java技術(shù)實現(xiàn)。所以,對于文件夾的命名應(yīng)該按照規(guī)范的命名法來實施。在真實的企業(yè)開發(fā)過程中,編寫代碼之前,都要系統(tǒng)的制定好一個比較完善的文件夾組織結(jié)構(gòu),使得整個項目開發(fā)思路比較清晰,讓編程人員能很快地定位到每一個模塊的設(shè)計。開發(fā)中,文件夾命名的規(guī)范化發(fā)揮著十分重要的作用。在myeclipse軟件中,該系統(tǒng)的文件夾組織結(jié)構(gòu)如下所示10:src目錄:是一種可執(zhí)行文件夾,可存放類包,類包中存

22、放源代碼文件,即后綴為java格式的文件。com.peng.pojo包:每一層都是文件夾,采用將域名倒寫的方式定義包名。該文件下存放實體類,也就是java中常說的pojo類。com.peng.mapping包:用于存放實體關(guān)系映射文件(orm文件),將實體類通過該配置文件和數(shù)據(jù)庫中的表一一對應(yīng)起來,找到它們之間的聯(lián)系。com.peng.util包:存放自己編寫好的工具類,該工具類可以在不同的包中重復(fù)使用,起到某些相應(yīng)的功能,如給密碼加密或者讀取某文件內(nèi)容。com.peng.action包:存放業(yè)務(wù)處理的類,即action組件。erceptor包:用于存放intercep

23、tor攔截器,主要作用是對用戶請求進行再次攔截,執(zhí)行時機是在action組件之前執(zhí)行。com.peng.config包:用于存放配置文件,如后綴為properties的文件??赏ㄟ^java中io流進行讀取文件內(nèi)容。com.peng.service包:用于存放一些服務(wù)類,常和dao類聯(lián)合使用。webroot目錄:是不可執(zhí)行的文件夾,用于儲存jsp頁面,即瀏覽網(wǎng)頁。 3數(shù)據(jù)庫設(shè)計3.1數(shù)據(jù)庫分析數(shù)據(jù)庫,顧名思義就是一個大型倉庫,用來存儲大量的數(shù)據(jù)。它包含所有涉及到的信息,主要囊括用戶信息、藥品基本信息和類別信息、以及銷售明細信息。通過某種對應(yīng)關(guān)系,間接的將所有信息數(shù)據(jù)聯(lián)系起來。在真實的企業(yè)開發(fā)中,

24、數(shù)據(jù)庫往往單獨安裝在某個特定的服務(wù)器上。這樣做的目的就是防止大量用戶過度頻繁的訪問數(shù)據(jù)庫,從而造成服務(wù)器的癱瘓。不僅如此,這樣做還可以提高查詢速度,降低服務(wù)器的負擔(dān)。因此,不同的硬件要求,可能會影響到數(shù)據(jù)庫的性能,以下給出了數(shù)據(jù)庫運行環(huán)境的要求:(1) 硬件要求:cpu:要求在2.8ghz以上。內(nèi)存:要求在2gb以上。硬盤儲存空間:150gb或者更高。(2) 軟件要求:操作系統(tǒng):windows 7操作系統(tǒng)。數(shù)據(jù)庫版本:mysql5.0版本。3.2數(shù)據(jù)庫設(shè)計通過以上對該系統(tǒng)的功能結(jié)構(gòu)的分析,將每一個模塊所涉及到的信息抽象成一個數(shù)據(jù)實體對象,將這些對象通過數(shù)據(jù)表的形式儲存在數(shù)據(jù)庫中。為了能更好的對

25、數(shù)據(jù)庫中的結(jié)構(gòu),下面簡單介紹一下數(shù)據(jù)庫的相關(guān)知識。數(shù)據(jù)庫中的數(shù)據(jù)類型主要包括整型(int)、浮點型(double)、字符型(varchar)、日期類型(datetime)。定義類型時含有數(shù)字,說明是數(shù)據(jù)的精確度或字符的長度。數(shù)據(jù)庫中的約束條件是用來給數(shù)據(jù)表中的某些列添加限制,主要包括有五種,分別為主鍵約束(primary key)、外鍵約束(foreign key)、唯一約束(unique)、非空約束(not null)和檢查約束(check)11。前三種是最為常用的約束條件,它們各自的簡寫分別為pri、mul和uni,作用如下: 主鍵約束:主鍵是用來區(qū)分一個數(shù)據(jù)表中的每一行數(shù)據(jù),主鍵的特點是

26、唯一性和不能為空值,因而不同的行具有不同的主鍵。主鍵的生成方式往往采用數(shù)據(jù)庫自增的方式auto_increment,隨數(shù)據(jù)的添加自增序列號。 外鍵約束:外鍵是定義在兩張表的不同列或同一張表中的不同列,用于聯(lián)系兩個列之間的關(guān)系,起到關(guān)聯(lián)作用,保證數(shù)據(jù)的一致性,往往將一張表的主鍵作為另一張表的外鍵。含有外鍵的表是主表,不含外鍵的表是子表。 唯一約束:此約束是說明該列的每一個數(shù)值都是唯一的,不能重復(fù)。定義唯一約束的主要目的是,在沒有主鍵所定義的其他列中不能重復(fù)輸入相同列值。 以下給出了幾種實體對象的表結(jié)構(gòu):(1) 用戶對象所對應(yīng)的表結(jié)構(gòu),如表3-1所示:表3-1 用戶對象數(shù)據(jù)表屬性數(shù)據(jù)類型是否可為空

27、鍵值默認值額外信息idint(11)noprinullauto_incrementusernamevarchar(50)nouninullpasswordvarchar(50)nonullcreate_timedatetimeyesnull(2) 藥品對象所對應(yīng)的表結(jié)構(gòu),如表3-2所示:表3-2 藥品對象數(shù)據(jù)表屬性數(shù)據(jù)類型是否可為空鍵值默認值額外信息idint(11)noprinullauto_incrementmed_novarchar(100)nouninullnamevarchar(100)nonullfactory_addvarchar(100)yesnulldescriptionte

28、xtyesnullpricedoublenonullmed_countint(11)yesnullreq_countint(11)yesnullphoto_pathvarchar(255)yesnullcategory_idint(11)yesmulnull(3) 銷售明細對象所對應(yīng)的表結(jié)構(gòu),如表3-3所示:表3-3 銷售明細對象數(shù)據(jù)表屬性數(shù)據(jù)類型是否可為空鍵值默認值額外信息idint(11)noprinullauto_incrementsell_namevarchar(200)nonullsell_pricedoublenonullsell_countint(11)nonullsell_ti

29、medatatimenonullmed_idint(11)yesmulnulluser_idint(11)yesmulnull(4) 藥品類別對象所對應(yīng)的表結(jié)構(gòu),如表3-4所示:表3-4 藥品類別對象數(shù)據(jù)表屬性數(shù)據(jù)類型是否可為空鍵值默認值額外信息idint(11)noprinullauto_incrementnamevarchar(100)nonulldescriptiontextyesnullcreate_timedatetimeyesnull在數(shù)據(jù)庫中創(chuàng)建以上各表的時候,應(yīng)該明確定義以上每個字段,缺少其中的某個字段都有可能提示創(chuàng)建失敗等信息。同時,應(yīng)注意數(shù)據(jù)的類型和精確度,以及約束條件和附

30、加信息。3.3數(shù)據(jù)庫創(chuàng)建利用sql語言(結(jié)構(gòu)化查詢語言)將所需的數(shù)據(jù)庫和數(shù)據(jù)表以語言腳本的形式生成,在mysql軟件客戶端的命令行界面輸入指令即可完成創(chuàng)建過程。如:在e盤下創(chuàng)建了一個“e:medicine.sql”的數(shù)據(jù)庫腳本,在命令行界面執(zhí)行指令“source e:medicine.sql”后,即可完成創(chuàng)建過程。另外一種創(chuàng)建方式,可將sql腳本添加到myeclipes軟件的項目中,通過軟件自帶的“數(shù)據(jù)庫連接插件”完成數(shù)據(jù)庫的創(chuàng)建,一般不采用這種形式。4配置文件4.1配置web.xml文件web.xml文件又叫做部署描述文件,它的主要作用就是初始化配置信息。在該文件中可定義過濾器對請求過濾;可

31、定義監(jiān)聽器對事件進行監(jiān)聽;也可定義servlet組件實現(xiàn)邏輯處理等等一些信息12。此文件的具體作用如下:(1) 可以定義某個首選頁面:<welcome-file-list>     <welcome-file>index.jsp</welcome-file> </welcome-file-list>當(dāng)你訪問某個網(wǎng)站的時候,首次瀏覽到的頁面就是index.jsp頁面。(2) 為struts組件servlet命名:<servlet><servlet-name>action</ servlet

32、 -name><servlet-class> org.apache.struts.action.actionservlet</servlet-class></servlet>這里由struts框架的底層原理來實現(xiàn),該組件由struts框架提供的jar包中的類actionservlet來完成,命名為action。(3) 為servlet定制統(tǒng)一資源定位器(url):<filter-mapping><filter-name>action</filter-name><url-pattern>*.do</u

33、rl-pattern></filter-mapping>“/*”代表對所有的請求字符串進行過濾, “*.do”代表對請求以“.do”結(jié)尾的請求過濾。通過servlet的名字找到以上命名之后的組件,例如:通過action名字找到actionservlet類。4.2配置struts-config.xml文件struts-config.xml文件是struts框架的核心配置文件。通過該文件中的配置信息,可調(diào)用與請求資源相對應(yīng)的action組件,并返回所需的執(zhí)行結(jié)果,實現(xiàn)頁面的跳轉(zhuǎn)。由于struts-config.xml文件當(dāng)中的配置相對較多,所以不再一一列舉其中的配置信息,只對其中

34、最為常用的重點標(biāo)簽和屬性做詳細介紹,如下:(1) <data-sources>標(biāo)簽:該標(biāo)簽的作用是用來配置web應(yīng)用所需的數(shù)據(jù)源,最多含有一個,該標(biāo)簽中可定義多個子標(biāo)簽<data-source>。(2) <data-source>標(biāo)簽:該標(biāo)簽的作用是用來定義具體的數(shù)據(jù)源??梢杂腥我鈧€,含有兩個重要屬性key和type,key的作用是區(qū)分不同的數(shù)據(jù)源,type的作用是為數(shù)據(jù)源的使用提供實現(xiàn)類,如連接池、jdbc技術(shù)的類庫。(3) <set-property>標(biāo)簽:該標(biāo)簽作用在<data-source>下,主要作用是設(shè)置數(shù)據(jù)源的屬性,如數(shù)

35、據(jù)源用戶、數(shù)據(jù)源密碼和數(shù)據(jù)源url等等。(4) <form-beans>標(biāo)簽:該標(biāo)簽的作用是用來配置from bean的,from bean實際上就是一個java bean,是對表單的封裝,struts會通過setter方法將表單中輸入框的值設(shè)置到from bean中同名的屬性上。含有兩個重要的屬性name和type,分別用來定義from bean的名字和實現(xiàn)類。(5) <global-forward>標(biāo)簽:該標(biāo)簽的主要作用是用來定義全局的forward的,所謂的forward就是實現(xiàn)頁面的跳轉(zhuǎn),即分發(fā)頁面的作用。(6) <action-mappings>標(biāo)

36、簽:該標(biāo)簽的作用是用來定義action組件的。在配置文件中最多含有一個,其中可含有多個子標(biāo)簽<action>。(7) <action>標(biāo)簽:該標(biāo)簽含有path、type和name三個重要屬性。path的作用是用來指定訪問的路徑,以“/”開頭;type用來指定處理邏輯的action組件;name是用來指明與之關(guān)聯(lián)的from bean的名字。(8) <forward> 標(biāo)簽:該標(biāo)簽定義在<action>標(biāo)簽中,作用就是實現(xiàn)頁面的跳轉(zhuǎn)。含有name和path屬性,作用分別為接受處理結(jié)果和指定要跳轉(zhuǎn)的頁面。4.3配置hibernate.cfg.xml文件

37、hibernate.cfg.xml文件是hibernate框架中的核心配置文件,用于連接數(shù)據(jù)庫,文件內(nèi)容一般采用工具自動生成。該配置文件中一般提供如下信息:(1) <session-factory>標(biāo)簽:提供session工廠,用于生產(chǎn)session對象,需要通過property標(biāo)簽注入數(shù)據(jù)源信息。(2) <property>標(biāo)簽:定義數(shù)據(jù)庫的連接信息,如driver_class、url、username、password和dialect。dialect叫做方言,hibernate框架可以通過dialect屬性匹配任意類型的數(shù)據(jù)庫,如oracle、mysql或者db2等

38、數(shù)據(jù)庫。(3) <mapping>標(biāo)簽:該標(biāo)簽的作用是加載orm映射文件,以便通過映射文件將java中的實體類和數(shù)據(jù)庫中的數(shù)據(jù)表對應(yīng)起來。5系統(tǒng)模塊設(shè)計5.1主系統(tǒng)管理模塊主系統(tǒng)管理模塊主要包括管理員賬號管理和系統(tǒng)初始化,如果細分的話,可分為添加和刪除管理員,修改管理員密碼和查看所有管理員。由于業(yè)務(wù)需求,任何管理員登錄成功后,都可以進行添加和刪除管理員的操作,所以操作時請謹(jǐn)慎操作,以免造成不必要的麻煩。修改管理員密碼時,只能對當(dāng)前用戶密碼做更改,不可更改其他管理員信息。前臺瀏覽器端采用到的技術(shù)主要包括jsp頁面技術(shù)和javascript技術(shù),后臺服務(wù)器端采用兩大框架處理業(yè)務(wù)邏輯和數(shù)

39、據(jù)邏輯。以下給出添加管理員的頁面,如圖5-1所示。圖5-1 添加管理員在頁面代碼中,用戶名采用username,密碼采用password,這樣即可以和java邏輯處理代碼中的user類屬性相對應(yīng),又保證代碼信息的一致性,減少開發(fā)難度系數(shù)。其中,定義用戶對象的主要代碼如下:public class user private int ;/id號private string username;/用戶名private string password;/密碼private date createtime;/創(chuàng)建日期public date getcreatetime() /獲取創(chuàng)建日期return cre

40、atetime;public void setcreatetime(date createtime) /設(shè)置創(chuàng)建日期this.createtime = createtime;public int getid() /獲取idreturn id;public void setid(int id) /設(shè)置idthis.id = id;public string getusername() /獲取用戶名return username;public void setusername(string username) /設(shè)置用戶名this.username = username;public string

41、 getpassword() /獲取用戶密碼return password;public void setpassword(string password) /設(shè)置用戶密碼this.password = password;從代碼中可以看出,user類含有四個私有屬性,并為每個屬性提供公有的get和set方法,這樣可以通過方法來訪問類的屬性。這種定義類的方式符合java bean規(guī)范。所謂的java bean是一種軟件開發(fā)中常常遵守的規(guī)范,它要求類的屬性盡量私有化,方法盡量公有化,并提供屬性的get和set方法。所謂退出系統(tǒng),就是返回到該系統(tǒng)的登錄界面,在此界面中用戶可進行登錄操作,如圖5-2所

42、示。圖5-2 用戶登錄界面用戶登錄處理,是從頁面中獲取用戶名以及密碼信息,將該信息傳遞給后臺處理,通過hibernate框架技術(shù)訪問數(shù)據(jù)庫中的用戶信息,并進行比對,正確則可登入系統(tǒng),否則提示密碼或用戶名錯誤,其主要代碼如下:public user login(string username,string password)user user = null;try session = hibernatefilter.getsession(); /獲取session對象session.begintransaction();/開啟事物/hql查詢語句string hql = "from u

43、ser u where u.username=? and u.password=?"query query = session.createquery(hql)/創(chuàng)建query對象.setparameter(0, username)/動態(tài)賦值.setparameter(1, password);/動態(tài)賦值user = (user)query.uniqueresult(); /返回user對象session.gettransaction().commit();/提交事務(wù) catch (exception e) e.printstacktrace();/打印異常信息session.get

44、transaction().rollback();/回滾事務(wù)return user;凡是能登錄成功的用戶,都能成功修改個人的密碼,根據(jù)原密碼和新密碼即可完成操作,操作頁面如圖5-3所示。圖5-3 修改當(dāng)前用戶密碼此修改密碼操作的代碼相對來說編寫有一定的難度,代碼如下所示:/ 修改密碼public actionforward modifypassword(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response)throws exception userform

45、uf = (userform) form;if (uf != null) /從session之中獲取user對象user user = (user) request.getsession().getattribute("user");/確認兩次密碼是否一致if (user != null && uf.getoldpassword().equals(user.getpassword() if (uf.getpassword().equals(uf.getrepassword() userdao dao = new userdao();user.setpassw

46、ord(uf.getpassword();dao.saveorupdate(user);else/密碼錯誤actionmessages errors = new actionmessages();errors.add("",new actionmessage("user.oldpassword.error");this.saveerrors(request, errors);return mapping.findforward("error");return mapping.findforward("userfind&quo

47、t;);5.2基礎(chǔ)信息管理模塊基礎(chǔ)信息管理模塊主要包括藥品信息管理和藥品類別管理。其中,藥品信息管理主要包括藥品的添加,藥品的查詢以及藥品的刪除等基本操作,每一位管理員可對藥品信息做相應(yīng)更改。技術(shù)上和主系統(tǒng)管理模塊一致,采用struts框架和hibernate框架的集成。由于頁面信息量比較大,涉及到的頁面數(shù)量較多,所以,只能給出部分頁顯示。以下給出查看所有藥品的頁面顯示效果圖,點擊左欄選中多個藥品,可做批量刪除,點擊右邊欄中的選項可進行其他操作,如圖5-4所示。圖5-4 查看所有藥品點擊藥品名稱可查看該藥品的詳細信息,如圖5-5所示。圖5-5 藥品詳細信息點擊右欄中的“進貨”操作可進入進貨頁面

48、,在此頁面可更改進貨需求數(shù)量,如點擊編號為“abc001”的藥品的進貨鏈接,可以看到該藥品的當(dāng)前數(shù)量,更改數(shù)量為100,則此藥品所對應(yīng)的需求數(shù)量由原來的0更改為現(xiàn)在的100,如圖5-6所示。圖5-6 更改藥品的需求數(shù)量藥品類別管理主要包括類別的添加、類別的刪除以及類別的查詢。點擊查看類別,可列出所有的藥品類別,如圖5-7所示。圖5-7 查看所有藥品類別以下是類別添加的效果圖,按照名稱和描述來添加類別。輸入類別名稱點擊提交即可完成操作,如圖5-8所示。圖5-8 添加藥品類別類別添加的相應(yīng)代碼如下所示。/添加或修改類別public actionforward add(actionmapping m

49、apping, actionform form,httpservletrequest request, httpservletresponse response)throws exception /獲取類別信息categoryform cf = (categoryform)form;/創(chuàng)建category對象category c = new category();c.setname(cf.getname();c.setdescription(cf.getdescription();c.setcreatetime(new date();if(cf.getid() != 0)c.setid(cf.

50、getid();categorydao dao = new categorydao();dao.saveorupdate(c); / 添加類別return mapping.findforward("paging");5.3藥品銷售管理模塊藥品銷售管理模塊主要包括購買藥品和銷售管理。選購藥品運用到了一種購物車的模式,也就是說,用戶可查看購物車?yán)锩嫠x購的藥品,也可繼續(xù)進行其他藥品的選購,購物車?yán)锩娴乃幤凡⒉浑S之改變,方便用戶操作,這就是購物車的機制。購物車是一種軟件開發(fā)中的設(shè)計理念,絕大多數(shù)的軟件中都會采用這種機制。以下給出購買藥品的頁面顯示,如圖5-9所示。圖5-9 購買藥

51、品點擊購買藥品id為1的藥品,將購買數(shù)量更改為2,則進入結(jié)賬頁面,在此界面中可進行繼續(xù)購買或立即結(jié)賬等操作,自動計算出所支付的購買金額。如果繼續(xù)購買其他藥品,這時就運用到了購物車的原理,不會將之前的操作清空。頁面如圖5-10所示。圖5-10 結(jié)賬界面點擊以上刪除按鈕,可將該藥品刪除。如果點擊清除,可將該購物車?yán)锏乃匈徺I的藥品全部清除。如圖5-11所示。圖5-11 清空購物車結(jié)賬成功后,會出現(xiàn)結(jié)賬完成頁面,給出該藥品的銷售時間以及購買人員,如圖5-12所示。圖5-12 結(jié)賬完成界面結(jié)賬代碼的編寫是一個相對復(fù)雜的過程,這其中包含了對異常信息的處理,例如藥品庫儲量數(shù)量不夠,則提示購買錯誤請重新購買

52、,這些都必須在系統(tǒng)設(shè)計上體現(xiàn)出來。銷售管理主要包括銷售明細和銷售排行,可對產(chǎn)品按照給定的日期格式查詢銷售,如圖5-13所示。圖5-13 銷售管理界面5.4進貨/需求管理模塊進貨/需求管理模塊主要是按照藥品的需求量進行添加藥品庫存量的操作。根據(jù)醫(yī)藥管理模塊下的藥品查看,進行相應(yīng)藥品數(shù)量的添加。如果已經(jīng)存在該藥品的信息,可通過搜索直接更改藥品數(shù)量,提高效率。技術(shù)上同其他幾個功能模塊一樣,均采用兩大框架的集成。以下給出按藥品編號更新需求的效果圖,輸入編號,更新藥品數(shù)量為20,如圖5-14所示。圖5-14 更新藥品需求藥品進貨成功后,會顯示該進貨狀態(tài),點擊完成即可添加庫存數(shù)量,效果圖如圖5-15所示。

53、圖5-15 藥品進貨界面6總結(jié)針對本次醫(yī)藥管理系統(tǒng)的設(shè)計,不僅完成了所規(guī)定的相關(guān)功能,而且對于個人而言,也是一個學(xué)習(xí)和培養(yǎng)動手能力的過程。進一步加深了對在校所學(xué)課程的理解,從中還學(xué)習(xí)到了許多企業(yè)開發(fā)中的專業(yè)性知識,例如java se技術(shù)、java ee技術(shù)和數(shù)據(jù)庫操作。從整體來看,該系統(tǒng)主要完成的是醫(yī)藥銷售統(tǒng)計和庫存信息,界面設(shè)計相對簡單,便于操作。設(shè)計過程中,之所以采用struts框架,是因為它可以簡化代碼量,降低耦合度;之所以運用hibernate框架,是因為它可以直接對java中的實體類進行操作,避免了因sql語句的誤操作而帶來的代碼錯誤。采用jdbc技術(shù)也可以實現(xiàn)對數(shù)據(jù)庫的操作,但由于涉及到的專業(yè)知識相對較強,sql語句的書寫過于繁瑣,一般情況下不會采用這種技術(shù)。由于沒有軟件開發(fā)經(jīng)驗,當(dāng)然在設(shè)計過程中會遇到各種各樣意想不到的問題。例如:創(chuàng)建數(shù)據(jù)庫時,書寫sql語句的時候往往會犯錯,常常把一些約束條件定義錯誤,插入數(shù)據(jù)時沒有注意到數(shù)據(jù)庫的編碼格式和數(shù)據(jù)表的結(jié)構(gòu)。在頁面顯示的過程中,頁面

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論