基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)班 級: 學(xué)號: 軟件學(xué)院姓 名: 軟件工程學(xué) 院: 專 業(yè): 指導(dǎo)教師: 基于hibernate的進(jìn)銷存管理系統(tǒng)的設(shè)計與實現(xiàn)摘 要隨著科技的迅速發(fā)展,各種管理系統(tǒng)已應(yīng)用到社會的各個領(lǐng)域。各個大小企業(yè)無論規(guī)模如何,都充分意識到傳統(tǒng)的手工管理模式已經(jīng)逐漸不能適應(yīng)時代的發(fā)展,為了更好的發(fā)展,紛紛開發(fā)適合自己的管理系統(tǒng)。通過醫(yī)藥進(jìn)銷存管理系統(tǒng)這個平臺,可以實現(xiàn)醫(yī)藥進(jìn)銷存管理的信息化、網(wǎng)絡(luò)化、系統(tǒng)化、規(guī)范化,使工作人員從繁雜的數(shù)據(jù)查詢和統(tǒng)計中解脫出來,減少工作量。系統(tǒng)的主要功能包括:藥品分類管理、藥品管理、入庫管理、出庫管理、庫存信息瀏覽、藥品

2、管理、供應(yīng)商 管理等。本系統(tǒng)前臺主要使用JSP作為開發(fā)語言,后臺使用SqlServer作為數(shù)據(jù)庫管理系統(tǒng),開發(fā)環(huán)境是MyEclipse,服務(wù)器采用tomcat,開發(fā)出的一個基于Web技術(shù)的B/S結(jié)構(gòu)的醫(yī)藥進(jìn)銷存管理系統(tǒng)。關(guān)鍵詞:醫(yī)藥進(jìn)銷存,JSP,B/S結(jié)構(gòu),HibernateDesign and implementation of inventory management system based on HibernateAbstractWith the rapid development of science and technology, all kinds of management

3、systems have been applied to each field of the society. Various size enterprises regardless of size, are fully aware of the traditional manual management mode has not adapted to the development of the times, in order to better development, in development for the management system。Through the medicin

4、e Invoicing management system this platform, can realize the medicine Invoicing management informatization, network, systematic, standardized, so that the staff from the complex data query and statistics out, reduce the workload. The main functions of the system include: the categorized management o

5、f drugs, medicines management, warehousing management, warehousing management, inventory information browsing, customer management, supplier management。The front of the system using JSP as a development language, the use of SqlServer as a database management system, the development environment is My

6、Eclipse, server using tomcat, developed a Web technology based on B / S structure medicine Invoicing management system。Keywords: Medicine Invoicing,JSP,B / S structure, Hibernate目 錄1 引言11.1課題背景11.2國內(nèi)外研究現(xiàn)狀11.3研究意義12 開發(fā)工具及技術(shù)22.1 MyEclipse22.2 Tomcat22.3 SqlServer22.4 Hibernate23 系統(tǒng)需求分析43.1 需求調(diào)研43.2 可行

7、性分析43.2.1 技術(shù)的可行性43.2.2 操作可行性43.3 系統(tǒng)用戶用例圖43.4 功能模塊需求分析53.5 設(shè)計的基本思想63.6 性能需求63.6.1 系統(tǒng)的安全性63.6.2 數(shù)據(jù)的完整性63.7 界面需求64 系統(tǒng)分析與設(shè)計84.1 數(shù)據(jù)庫的分析與設(shè)計84.1.1 數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計84.1.2 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計104.1.3 數(shù)據(jù)庫的連接原理124.2 中文亂碼問題處理135 系統(tǒng)功能展示及功能核心代碼155.1 系統(tǒng)登陸頁面實現(xiàn)155.2 系統(tǒng)首頁設(shè)計175.3 藥品管理模塊175.3.1 藥品信息錄入175.3.2 藥品信息管理195.3.3 藥品信息刪除205.4

8、采購入庫管理215.4.1 采購入庫添加215.4.2 采購入庫管理215.5 藥品分類管理235.5.1 分類信息錄入235.5.2 分類信息查詢235.6 修改密碼255.7 安全退出系統(tǒng)256 系統(tǒng)測試266.1 系統(tǒng)測試目的266.2系統(tǒng)測試步驟與方法266.3 測試過程266.4 其他錯誤277 結(jié)論28致 謝301引言1.1 課題背景計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,給信息時代的人們帶來了很大的方便。如今在Internet上,隨處都可以看到種類繁多的信息管理系統(tǒng),比如,企業(yè)辦公化自動管理系統(tǒng),電子商務(wù)系統(tǒng),企業(yè)教務(wù)管理系統(tǒng)等等。隨著信息技術(shù)的日益發(fā)展已深入到社會的各個角落,各個大的企業(yè),都充分

9、意識到傳統(tǒng)的手工管理模式已經(jīng)逐漸不能適應(yīng)時代的發(fā)展,為了更好的發(fā)展,紛紛開發(fā)適合自己的管理系統(tǒng)。不管大企業(yè)。各種類型的小企業(yè)也是如此,以前管理大多為手工管理,效率低、易出錯、手續(xù)繁瑣,而且耗費大量的人力,物力,財力。他們希望有一個適合自己的管理系統(tǒng),能夠?qū)崿F(xiàn)藥品類別管理,藥品管理,藥品出入庫管理,藥品和供應(yīng)商管理,庫存管理等功能1。通過此系統(tǒng),可以對醫(yī)藥進(jìn)銷存的各項情況實行電腦化管理,這樣可以提高工作效率,也使得醫(yī)藥進(jìn)銷存管理所需的各項信息能方便快速進(jìn)行錄入,查詢,刪除和更新,對相應(yīng)關(guān)鍵數(shù)據(jù)也能夠方便的統(tǒng)計結(jié)果。 1.2國內(nèi)外研究現(xiàn)狀目前市場上有許多成熟的進(jìn)銷存管理系統(tǒng),但這些系統(tǒng)大多數(shù)都是依

10、賴于某一特定類型的數(shù)據(jù)庫,而不能與企業(yè)已有的管理系統(tǒng)的數(shù)據(jù)庫有效地統(tǒng)一,這就造成了企業(yè)投入和資源上的浪費Hibernate是對象/關(guān)系映射的優(yōu)秀解決方案,簡寫為ORM,通過在系統(tǒng)中使用Hibernate可以解決不同類型數(shù)據(jù)庫對代碼的影響,從而使系統(tǒng)能夠應(yīng)用于多種數(shù)據(jù)庫2。1.3研究意義長久以來,醫(yī)藥進(jìn)銷存的管理工作大多數(shù)都采用的是傳統(tǒng)的手工方式來記錄相關(guān)信息,這種管理方式存在很多缺點,比如說,藥品入庫出庫,藥品信息的錄入,查詢,更新,分析都要完全依賴管理人員的手工記錄和人工分析。對于小規(guī)模企業(yè)來說還勉強可以接受,但對于規(guī)模大一點的企業(yè)來說,人工記錄是相當(dāng)麻煩的。為滿足企業(yè)發(fā)展需求,決定采用各種

11、編程語言JSP開發(fā)了基于B/S架構(gòu)的醫(yī)藥進(jìn)銷存管理系統(tǒng),醫(yī)藥進(jìn)銷存管理系統(tǒng)是涉及信息科學(xué)、數(shù)據(jù)計算和計算機技術(shù)的復(fù)雜的人機交互系統(tǒng)。通過這些系統(tǒng),可以對醫(yī)藥進(jìn)銷存和管理進(jìn)行智能化管理,有效地記錄并查詢各種藥品類型以及出入庫等情況,為醫(yī)藥進(jìn)銷存的管理提供了諸多方便。2開發(fā)工具及技術(shù)此次設(shè)計主要采用MyEclipse加Tomcat后臺服務(wù)器進(jìn)行,設(shè)計過程中頁面主要使用JSP技術(shù)完成,下面對MyEclipse、Tomcat、和SqlServer數(shù)據(jù)庫等進(jìn)行簡要介紹。2.1 MyEclipseMyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的

12、功能非常強大,支持也十分廣泛,尤其是對各種開元產(chǎn)品的支持十分不錯。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。2.2 Tomcat Tomcat是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶

13、不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選??梢赃@樣認(rèn)為,當(dāng)在一臺機器上配置好Apahce服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)運行tomcat時,它實際上作為一個與Apache獨立的進(jìn)程單獨運行的。2.3 SqlServer SqlServer使用C和C+編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng);為多種編程語

14、言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑;可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。對于一般的個人使用者和中小型企業(yè)來說,SqlServer提供的功能已經(jīng)綽綽有余,而且由于SqlServer是開放源碼軟件,因此可以大大降低總體擁有成本。2.4 HibernateHibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的We

15、b應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任3。Hibernate的核心接口一共有6個分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。 Hibernate 中提供了兩級Cache(高速緩沖存儲器),第一級別的緩存是Session級別的緩存,它是屬于事務(wù)范圍的緩存。這一級別的緩存由Hibernate管理的,一般情況下無需進(jìn)行干預(yù);第二級別的緩

16、存是SessionFactory級別的緩存,它是屬于進(jìn)程范圍或群集范圍的緩存。這一級別的緩存可以進(jìn)行配置和更改,并且可以動態(tài)加載和卸載。 Hibernate還為查詢結(jié)果提供了一個查詢緩存,它依賴于第二級緩存。3系統(tǒng)需求分析3.1 需求調(diào)研軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細(xì)化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。3.1 需求調(diào)研在項目的開始是需求調(diào)研,并且走訪了一些醫(yī)藥公司,經(jīng)過一系列的調(diào)查與談話中發(fā)現(xiàn),現(xiàn)行的醫(yī)藥進(jìn)銷存管理工作還是存在著很多不足之處,

17、手工記錄的方式不易保存,容易丟失,同樣也不利于數(shù)據(jù)的查詢和統(tǒng)計分析。根據(jù)醫(yī)藥公司的實際情況及調(diào)查結(jié)果,發(fā)現(xiàn)實現(xiàn)醫(yī)藥進(jìn)銷存管理的網(wǎng)絡(luò)化、信息化是十分有必要的,因此設(shè)計了本套醫(yī)藥進(jìn)銷存管理系統(tǒng)。3.2 可行性分析開發(fā)任何一個系統(tǒng),都會受到時間和資源上的限制。因此,在每一個項目開發(fā)之前,都要進(jìn)行可行性分析,可以減少項目的開發(fā)風(fēng)險,避免人力、物力和財力的浪費。3.2.1 技術(shù)的可行性本系統(tǒng)開發(fā)工具是MyEclipse和SqlServer數(shù)據(jù)庫,開發(fā)語言是Java,主要使用了J2EE的技術(shù),java是一種面向?qū)ο缶幊陶Z言,簡單易學(xué)而且靈活方便。大四時就學(xué)習(xí)了java課程,期間也系統(tǒng)的了解了J2EE的知識

18、,醫(yī)藥進(jìn)銷存管理系統(tǒng)總體上開發(fā)難度不高,數(shù)據(jù)庫的設(shè)計和操作是本系統(tǒng)設(shè)計的核心。在大學(xué)期間學(xué)習(xí)過軟件工程,軟件測試,UML統(tǒng)一建模語言等課程,每個學(xué)期也會完成對應(yīng)的課程設(shè)計,具備一定的系統(tǒng)分析、設(shè)計和測試能力。因此,完成系統(tǒng)實現(xiàn)在技術(shù)上完全具有可行性。3.2.2 操作可行性本系統(tǒng)操作簡單,輸入信息頁面大多數(shù)都是下拉框的選擇形式,在某些頁面,信息可以自動生成,無需輸入,時間的輸入也是用的日歷控件,操作簡便,對操作人員的要求很低,只需對Windows操作熟練,加之對本系統(tǒng)的操作稍加培訓(xùn)即可工作,而且本系統(tǒng)可視性非常好,所以在技術(shù)上不會有很大難度。3.3 系統(tǒng)用戶用例圖管理員負(fù)責(zé)管理整個系統(tǒng),涉及到九

19、大功能模塊,能夠及時動態(tài)的掌握醫(yī)藥進(jìn)銷存的各項情況。圖3.1 管理員用例圖3.4 功能模塊需求分析任何一個軟件本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應(yīng)該產(chǎn)生的信息很大程度上決定系統(tǒng)的面貌,對軟件設(shè)計有深遠(yuǎn)的影響,因此,必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件分析的一個重要任務(wù)4。分析系統(tǒng)的數(shù)據(jù)要求通常采用建立數(shù)據(jù)模型的方法。本系統(tǒng)最大的特點是使用操作簡單友好的提示信息。本系統(tǒng)將實現(xiàn)以下基本功能: 1. 系統(tǒng)具有簡潔大方的頁面,使用簡便,友好的錯誤操作提示; 2. 管理員用戶具有做藥品分類管理、藥品管理、入庫管理,出庫管理、庫存信息 管理、藥品管理、系統(tǒng)管理功能;系統(tǒng)的功能結(jié)構(gòu)圖3.2所示:圖

20、3.2 用戶功能模塊圖3.5 設(shè)計的基本思想設(shè)計思想遵循以下幾點:1. 采用B/S模式進(jìn)行開發(fā),其優(yōu)點是后臺與前臺處理層次分明,而且符合眾多已經(jīng)習(xí)慣網(wǎng)頁方式的用戶。2. 采用面向?qū)ο蟮拈_發(fā)與設(shè)計理念。運用面向?qū)ο蠹夹g(shù)的前提是對整體系統(tǒng)的高度和準(zhǔn)確抽象,通過它可以保證系統(tǒng)良好的框架,進(jìn)而帶來產(chǎn)品較強的穩(wěn)定性和運行效率。3. 采用模塊化設(shè)計。模塊化設(shè)計要求將整個系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡化設(shè)計和實現(xiàn)過程。4. 簡單方便的系統(tǒng)界面。設(shè)計簡單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。5速度優(yōu)先原則。由于此工具最重要的評測標(biāo)準(zhǔn)就是速度,因此在設(shè)計過程中,具體過程盡量做到資源占用少,

21、速度快。6設(shè)計既要突出重點,又要細(xì)致周到。要符合設(shè)計需求,在有可能改進(jìn)的地方進(jìn)行擴充,使系統(tǒng)更適應(yīng)用戶的需要。3.6 性能需求3.6.1 系統(tǒng)的安全性醫(yī)藥進(jìn)銷存管理系統(tǒng)在管理權(quán)限上要嚴(yán)格進(jìn)行控制,想登陸醫(yī)藥進(jìn)銷存管理系統(tǒng)進(jìn)行操作,必須有某些操作權(quán)限,沒有權(quán)限的用戶不能通過任何方式登錄系統(tǒng)查看系統(tǒng)的任何信息和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。3.6.2 數(shù)據(jù)的完整性 1.各種記錄信息的完整性,信息記錄內(nèi)容不能為空2.各種數(shù)據(jù)間相互聯(lián)系的正確性3.相同數(shù)據(jù)在不同記錄中的一致性3.7 界面需求界面設(shè)計目前已經(jīng)成為評價軟件質(zhì)量的一條重要指標(biāo),一個好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效

22、率,JSP技術(shù)是用JAVA語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的JAVA庫單元提供了一個接口來服務(wù)于HTTP的應(yīng)用程序5。 創(chuàng)建動態(tài)頁面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。1.輸出設(shè)計輸出是由計算機對輸入的原始信息進(jìn)行加工處理,形成高質(zhì)量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設(shè)計的主要職責(zé)和目標(biāo)。系統(tǒng)設(shè)計的過程正好和實施過程相反,并不是從輸入設(shè)計到輸出設(shè)計,而是從輸出設(shè)計到輸入設(shè)計,這是因為輸出表格直接與使用者相聯(lián)系,設(shè)計的出發(fā)點應(yīng)當(dāng)是保證輸出表格方便地為使用者服務(wù),正確及時反映和組成用于各部門的有用信息6。輸

23、出設(shè)計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。2.輸入設(shè)計輸入數(shù)據(jù)的收集和錄入是比較費事的,需要大量的人力和一定設(shè)備,并且容易出錯。如果輸入系統(tǒng)的數(shù)據(jù)有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數(shù)據(jù)的正確性對于整個系統(tǒng)質(zhì)量的好壞是具有決定性意義的。輸入設(shè)計的原則有如下幾點:1)輸入量應(yīng)保持在能滿足處理要求的最低限度。設(shè)計中可采用設(shè)置字段初值,下拉式數(shù)據(jù)窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數(shù)據(jù)準(zhǔn)備時間也減少。2)輸入的準(zhǔn)備及輸入過程應(yīng)盡量容易進(jìn)行,從而減少錯誤的發(fā)生。3)應(yīng)盡量早對輸入數(shù)據(jù)進(jìn)行檢查(盡量接近原數(shù)據(jù)

24、發(fā)生點),以便使錯誤及時得到更正。4)輸入數(shù)據(jù)盡早地用其處理所需的形式被記錄,以避免數(shù)據(jù)由一種介質(zhì)轉(zhuǎn)移到另一種介質(zhì)時需要轉(zhuǎn)錄而可能發(fā)生的錯誤4系統(tǒng)分析與設(shè)計4.1 數(shù)據(jù)庫的分析與設(shè)計計算機信息系統(tǒng)以數(shù)據(jù)庫為核心,在數(shù)據(jù)庫管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲、檢索、更新、加工、統(tǒng)計和傳播等操作。數(shù)據(jù)庫已經(jīng)成為現(xiàn)在信息系統(tǒng)等計算機系統(tǒng)的基礎(chǔ)與核心部分7。數(shù)據(jù)庫設(shè)計的好壞直接影響到整個系統(tǒng)的質(zhì)量和效率。數(shù)據(jù)庫的設(shè)計一般經(jīng)過規(guī)劃。需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計5個步驟。4.1.1 數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計概念設(shè)計是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個系統(tǒng)的數(shù)據(jù)庫概念結(jié)構(gòu),從用戶的角度進(jìn)行

25、視圖設(shè)計,然后將視圖集成,最后對集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計采用實體聯(lián)系(E-R)模型設(shè)計方法。E-R模型法的組成元素有:實體、屬性、聯(lián)系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對實體特性的描述。E-R(實體聯(lián)系)模型是對現(xiàn)實世界的一種抽象,它的主要成份是 實體、聯(lián)系和屬性8。 但是在現(xiàn)實世界中還有一些特殊的語義。需要擴展ER模型的概念才能更好地模擬現(xiàn)實世界。概念設(shè)計的目標(biāo)是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式是獨立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨立于支持?jǐn)?shù)據(jù)庫的DBMS,不依賴于計算機系統(tǒng)的,根據(jù)以上對數(shù)據(jù)庫的需求分析,并結(jié)

26、合系統(tǒng)概念模型的特點及建立方法,建立E-R模型圖8。實體間關(guān)系屬性實體(1) 藥品類別實體E-R圖如圖4.1所示:類別介紹類別名稱藥品類別 圖4.1藥品類別信息實體E-R圖(2) 藥品信息實體E-R圖如圖4.2所示:單位規(guī)格產(chǎn)地藥品名稱備注信息物品信息 圖4.2 藥品信息實體E-R圖(3) 入庫信信息E-R圖如圖4.3所示:總金額經(jīng)手人入庫時間單據(jù)號備注信息入庫信息 圖4.3 入庫信息實體E-R圖(4) 出庫信信息E-R圖如圖4.4所示:總金額經(jīng)手人出庫時間單據(jù)號備注信息出庫信息 圖4.4 出庫信息實體E-R圖(5) 管理員信息E-R圖如圖4.5所示:登陸賬號登陸密碼用戶ID管理員 圖4.5

27、管理員信息實體E-R圖4.1.2 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計我們知道,數(shù)據(jù)庫概念模型獨立于任何特定的數(shù)據(jù)庫管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計算機觀點處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫模型轉(zhuǎn)換應(yīng)遵循下列原則:*每一個實體要轉(zhuǎn)換成一個關(guān)系*所有的主鍵必須定義非空(NOT NULL)*對于二元聯(lián)系應(yīng)按照一對多、弱對實、一對一、多對多等聯(lián)系來定義外鍵9。根據(jù)E-R模型,醫(yī)藥進(jìn)銷存管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說明。(1) 藥品類別表主要是記錄了藥品類別基本信息。表結(jié)構(gòu)如表4.1所示: 表4.1 藥品類別表(t_catelog)列名數(shù)據(jù)類

28、型長度允許空是否主鍵說明idint4否是 編號namevarchar50否否 類別名稱jieshaovarchar50否否 類別介紹(2) 藥品信息表主要是記錄了醫(yī)藥進(jìn)銷存的基本信息,表結(jié)構(gòu)如圖4.2所示:表4.2 藥品信息表(t_goods)列名數(shù)據(jù)類型長度允許空是否主鍵說明idInt4否是編號catelog_idInt4否否類別編號namevarchar50否否藥品名稱chandivarchar50否否產(chǎn)地danweivarchar50否否單位guigevarchar50否否規(guī)格beizhuvarchar50否否備注信息(3)入庫信息表主要是記錄醫(yī)藥進(jìn)銷存的入庫的基本信息,表結(jié)構(gòu)如圖4.3

29、所示:表4.3 入庫信息表(t_ruku)列名數(shù)據(jù)類型長度允許空是否主鍵說明idInt4否是編號danjuhaovarchar4否否單據(jù)號shijianvarcharDate否否入庫時間zongjiagevarchar50否否總價格jingshourenvarchar50否否經(jīng)手人beizhuvarchar500否否備注信息(4) 出庫信息表主要是記錄醫(yī)藥進(jìn)銷存的出庫基本信息,表結(jié)構(gòu)如圖4.4所示: 表4.4出庫信息表(t_chuku)列名數(shù)據(jù)類型長度允許空是否主鍵說明idInt4否是編號danjuhaovarchar4否否單據(jù)號shijianvarcharDate否否出庫時間zongjiag

30、evarchar50否否總價格jingshourenvarchar50否否經(jīng)手人beizhuvarchar500否否備注信息(5) 管理員信息表主要記錄的管理員的賬號信息,包括用戶名和密碼,表結(jié)構(gòu)如表4.5所示:表4.5管理員信息表(t_admin)列名數(shù)據(jù)類型長度允許空是否主鍵說明userIdint4否是編號userNamevarchar50否否用戶名userPwvarchar50否否密碼4.1.3 數(shù)據(jù)庫的連接原理采用JDBC連接數(shù)據(jù)庫的方式,只需在工程中導(dǎo)入對應(yīng)數(shù)據(jù)庫的jar包,就可以方便的對數(shù)據(jù)庫進(jìn)行連接,在程序中,用Class.forName()方法來加載驅(qū)動程序,在用DriverM

31、anager的getConnection()方法就可以創(chuàng)建一個數(shù)據(jù)庫連接。程序采用的是DAO模式來操作數(shù)據(jù)庫,DAO(Data Access Object,數(shù)據(jù)訪問對象),是Java編程中的一種經(jīng)典模式,已被廣泛應(yīng)用,也是J2EE架構(gòu)中持久層框架的基礎(chǔ)知識,基于分層次式的軟件架構(gòu)來實現(xiàn)對數(shù)據(jù)庫的訪問操作10。DAO模式的主要思想就是從抽象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的含義就是編寫應(yīng)用程序的程序員不必關(guān)心數(shù)據(jù)庫的物理位置,已經(jīng)是何種數(shù)據(jù)庫,只需使用封裝數(shù)據(jù)庫中表示記錄的數(shù)據(jù)對象即可11。其思想如圖3.6所示:封裝使用DataSourceDataAccessObjectBusinessOb

32、ject創(chuàng)建/使用獲取/修改DataTransferObject圖4.6 DAO模式類圖 圖中BussinessObject是業(yè)務(wù)對象,是使用DAO模式的藥品端;DataTransferObject數(shù)據(jù)傳輸對象,在應(yīng)用程序不同層次之間傳輸對象,在一個分布式應(yīng)用程序中,通??梢蕴岣哒淼男阅?;DataObjectAcces數(shù)據(jù)輸入/輸出對象封裝了對數(shù)據(jù)源的一些基本操作;DataSource指的是數(shù)據(jù)源。可以從圖中看出,DAO模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)羅即將,是的編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫的操作,主要使用DBContent的對象來接一個數(shù)據(jù)庫(建立一個類DBConten

33、t),代碼如下:public DBContent()String CLASSFORNAME= com.microsoft.sqlserver.jdbc.SQLServerDriver ;/連接數(shù)據(jù)庫的驅(qū)動String url= jdbc:sqlserver:/localhost:1433;databaseName=db_yyj ;String user=sa;/連接數(shù)據(jù)庫的用戶名String password=sa;/連接數(shù)據(jù)庫的密碼tryClass.forName(CLASSFORNAME);con= DriverManager.getConnection(url,user,password

34、);/加載數(shù)據(jù)庫的驅(qū)動stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);catch(Exception ex)ex.printStackTrace();在程序需要連接數(shù)據(jù)庫的地方,只需要生成一個DBConnet的對象,就可以對數(shù)據(jù)庫進(jìn)行連接并操作。4.2 中文亂碼問題處理在程序中經(jīng)常會遇到中文亂碼的情況,如果手動的在servlet和jsp頁面進(jìn)行設(shè)置,相當(dāng)麻煩。因此,在程序的開始就寫了一個過濾器SetCharacterEncodingFilter。在web.xml中配置:Se

35、tCharacterEncodingFiltermyweb.util.filter.SetCharacterEncodingFilterencodinggb2312SetCharacterEncodingFilter/*/*表示工程下所有的頁面都會有此過濾器的處理對應(yīng)的SetCharacterEncodingFilter.java文件中的重要代碼,在初始化init()方法中定義:public void init(FilterConfig filterConfig) throws ServletException this.filterConfig = filterConfig; this.en

36、coding = filterConfig.getInitParameter(encoding); String value = filterConfig.getInitParameter(ignore); 在工具包util包中同樣定義了DataFormate類來處理字符轉(zhuǎn)換:public static String toUni(String gbStr) String uniStr = ; /*把字符串轉(zhuǎn)換成uincode編碼*/ if(gbStr = null) gbStr = ; try byte tempByte = gbStr.getBytes(GB2312); uniStr = n

37、ew String(tempByte,ISO8859_1); catch(Exception ex) return uniStr; 5系統(tǒng)功能展示及功能核心代碼在管理信息系統(tǒng)的生命周期中,僅過了需求分析、系統(tǒng)設(shè)計等階段之后,便開始了系統(tǒng)實施階段。在系統(tǒng)分析和設(shè)計階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計上,系統(tǒng)實施階段要繼承此前面各個階段的工作成果,將技術(shù)設(shè)計轉(zhuǎn)化為物理實現(xiàn),因此系統(tǒng)實施的成果是系統(tǒng)分析和設(shè)計階段的結(jié)晶12。5.1 系統(tǒng)登陸頁面實現(xiàn)1.描述:為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中,并且不同角色的用戶進(jìn)入不同的界面,功能也隨之不同。2.程序運行效果圖如圖5

38、.1所示:圖5.1 系統(tǒng)登陸頁面設(shè)計3.在登陸頁面輸入用戶名和密碼以,點擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會對用戶名,密碼,驗證碼進(jìn)行判斷,并根據(jù)相應(yīng)的用戶角色進(jìn)入對應(yīng)的頁面,loginservice關(guān)鍵代碼:public String login(String userName,String userPw,int userType)tryThread.sleep(700); catch (InterruptedException e)/ TODO Auto-generated catch blocke.printStackTrace();String result

39、=no;if(userType=0)String sql=from TAdmin where userName=? and userPw=?;Object con=userName,userPw;List adminList=adminDAO.getHibernateTemplate().find(sql,con);if(adminList.size()=0) result=no;else WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); TAdmin admin=(TAdmin)ad

40、minList.get(0); session.setAttribute(userType, 0); session.setAttribute(admin, admin); result=yes;if(userType=2)rs.close(); catch (SQLException e)System.out.println(登錄失敗!);e.printStackTrace();finallymydb.closed();return result;5.2 系統(tǒng)首頁設(shè)計1.描述:管理員主頁面:左方頁面展示了管理員可操作的九大功能,進(jìn)入相關(guān)的管理頁面可以鏈接到子菜單,并且高亮顯示,每個管理模塊下

41、面都有相應(yīng)的子菜單。在每個jsp頁面將會對相關(guān)用戶進(jìn)行攔截操作,這樣可以提高安全性,防止用戶不經(jīng)過登陸頁面而進(jìn)入任何子菜單頁面:if(session.getAttribute(user)=null) out.print(alert(請先登錄!);window.open(./index.jsp,_self); 5.3 藥品管理模塊藥品管理模塊主要由藥品類別管理和藥品信息管理兩功能組成,其中藥品類別管理是針對藥品類別進(jìn)行增刪改查,藥品信息管理是對藥品信息的增刪改查。5.3.1 藥品信息錄入描述:輸入藥品類別相關(guān)正確信息后點擊錄入按鈕,如果是沒有輸入完整的信息,都會給出相應(yīng)的錯誤提示,不能錄入成功。

42、輸入數(shù)據(jù)都通過form表單中定義的方法onsubmit=return checkForm()來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據(jù)的方式。1. 流程圖如下圖5.2所示:登陸系統(tǒng) 錄入藥品信息系統(tǒng)驗證藥品信息錄入成功結(jié) 束通過未通過 圖5.2做工師傅信息錄入流程圖2. 程序效果圖如下圖5.3所示:圖5.3藥品信息錄入5.3.2 藥品信息管理1.描述:管理員點擊左側(cè)的菜單“藥品管理”,頁面跳轉(zhuǎn)到藥品管理界面,調(diào)用后臺的action類查詢所有的醫(yī)藥進(jìn)銷存信息。2.程序效果圖如下圖5.4所示:圖5.4 藥品信息管理藥品信息管理關(guān)鍵代碼:public String goodsAdd()

43、TGoods goods=new TGoods();goods.setCatelog_id(catelog_id);goods.setName(name);goods.setChandi(chandi);goods.setDanwei(danwei);goods.setGuige(guige);goods.setBeizhu(beizhu);goods.setDel(no);goodsDAO.save(goods);this.setMessage(操作成功);this.setPath(goodsMana.action);return succeed;public String goodsMan

44、a()String sql = from TGoods where del=no order by catelog_id;List goodsList=goodsDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(goodsList, goodsList);return ActionSupport.SUCCESS;public String goodsDel()String sql = update TGoods set

45、del=yes where id=?;Object o=id;goodsDAO.getHibernateTemplate().bulkUpdate(sql, o);this.setMessage(刪除成功);this.setPath(goodsMana.action);return succeed;5.3.3 藥品信息刪除1.描述:先是點擊做藥品信息管理,頁面跳轉(zhuǎn)到藥品信息管理界面,瀏覽所有的藥品信息信息,點擊要刪除的藥品信息,彈出的確定對話框,即可刪除該藥品信息。2.程序效果圖如下圖5.5所示:圖5.5 藥品信息刪除5.4 采購入庫管理5.4.1 采購入庫添加1.描述:在此頁面主要是輸入入庫

46、單據(jù)號、入庫時間、總金額、經(jīng)手人等信息,總金額檢驗輸入是否為數(shù)字,是否為空也是通過form表單中的onsubmit=return checkForm()來檢查。2.程序效果圖如圖5.6所示:圖5.6 采購入庫添加5.4.2 采購入庫管理1. 描述:管理員點擊左側(cè)的菜單“采購入庫管理”,頁面跳轉(zhuǎn)到采購入庫管理界面,調(diào)用后臺的入庫Action類查詢出所有的入庫信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出入庫信息。2.程序效果圖如下圖5.7所示:圖5.7入庫管理頁面3. 在整個系統(tǒng)中所有涉及輸入日期的地方都是采用的mydata97這個日歷控

47、件的方式來實現(xiàn),要在工程中導(dǎo)入Calendar.js文件,在jsp頁面開始引入 該js文件,在文本框的屬性定義中定義方法onclick=new Calendar().show(this);即可采購入庫管理關(guān)鍵代碼:public String rukuAdd()TRuku ruku=new TRuku();ruku.setDanjuhao(danjuhao);ruku.setShijian(shijian);ruku.setZongjiage(zongjiage);ruku.setJingshouren(jingshouren);ruku.setBeizhu(beizhu);ruku.setDe

48、l(no);rukuDAO.save(ruku);this.setMessage(操作成功);this.setPath(rukuMana.action);return succeed;public String rukuMana()String sql = from TRuku where del=no;List rukuList=rukuDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(rukuList, rukuLi

49、st);return ActionSupport.SUCCESS;public String rukuDel()String sql = update TRuku set del=yes where id=?;Object o=id;rukuDAO.getHibernateTemplate().bulkUpdate(sql, o);this.setMessage(刪除成功);this.setPath(rukuMana.action);return succeed;5.5 藥品分類管理5.5.1 分類信息錄入1.描述:輸入分類信息后,點擊提交按鈕,可以在備注添加其他信息。如果不輸入分類名稱,系統(tǒng)

50、會給出警示,提示必須輸入分類名稱。2.程序效果圖如圖5.8所示:圖5.8藥品信息錄入5.5.2 分類信息查詢1.描述:不輸入任何信息點擊查詢按鈕查詢的是所有的分類信息,可以根據(jù)輸入條件來進(jìn)行篩選。2.程序效果圖如圖5.9所示:圖5.9 藥品信息查詢分類管理核心代碼:public String catelogAdd()TCatelog catelog=new TCatelog();catelog.setName(name);catelog.setJieshao(jieshao);catelog.setDel(no);catelogDAO.save(catelog);this.setMessage(操作成功);this.setPath(catelogMana.action);return succeed;

溫馨提示

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

最新文檔

評論

0/150

提交評論