基于JAVA WEB的醫(yī)藥管理系統(tǒng)
《基于JAVA WEB的醫(yī)藥管理系統(tǒng)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于JAVA WEB的醫(yī)藥管理系統(tǒng)(45頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、合肥財(cái)經(jīng)職業(yè)學(xué)院畢業(yè)論文(實(shí)踐)報(bào)告畢業(yè)論文(實(shí)踐)報(bào)告基于 JAVA WEB 的醫(yī)藥管理系統(tǒng)系系 別別 工程學(xué)院工程學(xué)院 專(zhuān)專(zhuān) 業(yè)業(yè) 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) 年年 級(jí)級(jí) 2008 學(xué)學(xué) 制制 學(xué)學(xué) 號(hào)號(hào) 姓姓 名名 二 0 一 0 年 十 月目目 錄錄摘 要 .- 1 -ABSTRACT .- 2 -第 1 章 開(kāi)發(fā)的目的和意義 .- 3 -第 2 章 需求分析 .- 4 -2.1 系統(tǒng)工作流程分析 .- 4 -2.2 系統(tǒng)實(shí)現(xiàn)目標(biāo) .- 4 -第 3 章 總體設(shè)計(jì) .- 5 -3.1 系統(tǒng)設(shè)計(jì)的總體思想 .- 5 -3.2 系統(tǒng)設(shè)計(jì)的體系和結(jié)構(gòu) .- 5 -3.2.1 系統(tǒng)的設(shè)計(jì)體系
2、.- 5 -3.2.2 系統(tǒng)的結(jié)構(gòu)架構(gòu).- 6 -3.3 系統(tǒng)的功能和結(jié)構(gòu)框圖 .- 7 -3.3.1 系統(tǒng)功能模塊.- 7 -3.3.2 系統(tǒng)結(jié)構(gòu)框圖:.- 7 -3.4 開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具 .- 10 -第 4 章 開(kāi)發(fā)平臺(tái)和工具的簡(jiǎn)介 .- 10 -4.1 JSP 的簡(jiǎn)要說(shuō)明.- 10 -4.2 MYSQL的簡(jiǎn)要說(shuō)明 .- 10 -4.3 系統(tǒng)配置過(guò)程 .- 11 -4.4 配置關(guān)鍵性問(wèn)題的解決 .- 12 -4.4.1 Servlet 和 JSP 性能調(diào)整.- 12 -第 5 章 系統(tǒng)的詳細(xì)設(shè)計(jì) .- 14 -5.1 數(shù)據(jù)庫(kù)的實(shí)現(xiàn) .- 14 -5.1.1 數(shù)據(jù)庫(kù)關(guān)系模式的設(shè)計(jì).- 1
3、4 -5.1.2 數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)(表結(jié)構(gòu)).- 14 -5.2 數(shù)據(jù)庫(kù)的連接 .- 17 -5.3 功能模塊的詳細(xì)設(shè)計(jì) .- 18 -5.3.1 組件包結(jié)構(gòu).- 18 -5.3.2 具體模塊的代碼和相應(yīng)界面.- 19 -第 6 章 經(jīng)驗(yàn)總結(jié) .- 33 -致 謝 .- 34 -參考文獻(xiàn) .- 35 -1摘摘 要要醫(yī)藥管理系統(tǒng)是現(xiàn)代化在線(xiàn)醫(yī)藥管理必不可少的基礎(chǔ)設(shè)施與技術(shù)支撐環(huán)境。本系統(tǒng)前臺(tái)采用 DreamWeaver 開(kāi)發(fā),后臺(tái)采用 MySql 作為數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,這些技術(shù)目前相對(duì)比較成熟,方便產(chǎn)品的維護(hù)。本系統(tǒng)可以實(shí)現(xiàn)用戶(hù)在線(xiàn)注冊(cè)、登錄、修改個(gè)人信息,用戶(hù)進(jìn)行藥品選購(gòu)、查看藥品詳細(xì)信息、提交
4、訂單信息,管理員對(duì)藥品、藥品分類(lèi)、用戶(hù)信息和訂單信息進(jìn)行在線(xiàn)維護(hù)和管理。JSP(Java Server Pages)是由 Sun Micrososystems 公司倡導(dǎo)的、許多公司參與的一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),JSP 技術(shù)是在 Servlet 技術(shù)基礎(chǔ)上發(fā)展起來(lái)的,它在飛速發(fā)展過(guò)程中,現(xiàn)在已經(jīng)成為 Java 服務(wù)器編程的重要組成部分。雖然它未成型,但是它必然將和 J2EE 一起發(fā)展。 MySql 是一種高效的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它與 Windows NT/2000 及 Windows 9x 等操作系統(tǒng)緊密集成。這種安排使 MySql 能充分利用操作系統(tǒng)所提供的特性。對(duì)于今天復(fù)雜的客戶(hù)/服務(wù)
5、器系統(tǒng)來(lái)說(shuō),MySql 是一個(gè)很好的選擇。關(guān)鍵字:醫(yī)藥管理系統(tǒng),Java,MySql2AbstractThe medical administrative system is the modernized online medicine management system, which is the essential infrastructure and technological back-up environment. This systematic front desk adopts DreamWeaver development, and the backstage supporte
6、r adopts MySql as the database developing instrument. These technologies are relative mature at present, facilitate the maintenance of the products. This system can realize users online registration , log-in , revision of personal information , selection and order of medicines, examination of the de
7、tailed information of medicines , submittal of the order information, maintenance and management of medicines, classification of the medicines ,users information and order information online.JSP (Java Server Pages ) is advocated by Sun Micrososystems Company, a kind of dynamic webpage technical stan
8、dard of setting-up together which a lot of companies participate in. JSP technology is developed on Servlet technological foundation. In the course of developing at full speed, it have already become the important component of server programming of Java now. Though it doest shape, it must develop wi
9、th J2EE.MySql is an efficient relation database system. It is close integrated with Windows 2000/NT and Windows 9X OS. MySql can utilize fully the characteristics provided by OS .MySql is a good choice for the complicated Cilent/Server systems nowaday. Key Word: Medical Administrative System, JSP, M
10、ySql 3第第 1 1 章章 開(kāi)發(fā)的目的和意義開(kāi)發(fā)的目的和意義開(kāi)發(fā)軟件的一個(gè)目的是針對(duì)目前普遍的醫(yī)藥管理系統(tǒng)存在的功能不全,操作復(fù)雜,系統(tǒng)要求高等一系列問(wèn)題。該管理系統(tǒng)采用電子商務(wù)設(shè)計(jì)模式,可靠,方便,并且功能齊全。當(dāng)然對(duì)該軟件的態(tài)度是渴望獲得顯著的社會(huì)效益。開(kāi)發(fā)軟件的另一個(gè)目的是使其具有強(qiáng)大的實(shí)用價(jià)值,即它可以滿(mǎn)足中小型醫(yī)藥公司的管理需要。隨著小型醫(yī)藥企業(yè)規(guī)模的擴(kuò)大,手工工作已經(jīng)不能滿(mǎn)足業(yè)務(wù)上的需求。而該醫(yī)藥管理系統(tǒng)的實(shí)施,能集中處理藥品的進(jìn)銷(xiāo)存業(yè)務(wù),管理好企業(yè)的應(yīng)收應(yīng)付賬目,為企業(yè)的調(diào)整發(fā)展創(chuàng)造一個(gè)新的條件。隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的蓬勃發(fā)展和人們對(duì)醫(yī)藥產(chǎn)品需求的迅速增加,醫(yī)藥行業(yè)正處于一個(gè)高速
11、發(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)品種類(lèi)繁多、銷(xiāo)售模式特殊、業(yè)務(wù)最大,單憑手工記帳已很難適應(yīng)工作的需要。醫(yī)藥作為一個(gè)關(guān)系到人們健康的特殊行業(yè),國(guó)家對(duì)此又有一些不同于其他行業(yè)的管理政策,這些都加大了管理的難度。如何盡快建立和完善現(xiàn)代企業(yè)的信息化管理機(jī)制問(wèn)題,已成為醫(yī)藥企業(yè)發(fā)展的關(guān)鍵所在。而方便、安全、快捷的醫(yī)藥管理軟件系統(tǒng)正是在這樣的背景下發(fā)展起來(lái)的。這種管理軟件對(duì)硬件的要求很低,一般有一個(gè)比較簡(jiǎn)單的服務(wù)器與 PC 機(jī)組成的網(wǎng)絡(luò)即可,再加上使用比較廉價(jià)、性能不錯(cuò)的軟件,這樣就可以以較低的成本
12、來(lái)實(shí)現(xiàn)一個(gè)足夠使用的功能,而這種模式也正滿(mǎn)足了那種中小型醫(yī)藥公司的要求。但是目前對(duì)這種管理軟件的開(kāi)發(fā)還處于一種比較原始的階段。開(kāi)發(fā)者往往都是出于資金和時(shí)間的顧慮使用比較陳舊的技術(shù),而且各為己見(jiàn),并且很少涉及網(wǎng)絡(luò)??墒钱?dāng)今是一個(gè)網(wǎng)絡(luò)化的社會(huì),單機(jī)版的管理軟件多如牛毛,去開(kāi)發(fā)一個(gè)類(lèi)似的軟件無(wú)疑是一種在時(shí)間上、精神上和資源上的極大浪費(fèi)。所以為這種有需要的中小型企業(yè)開(kāi)發(fā)一種基于網(wǎng)絡(luò)的醫(yī)藥管理軟件是非常有實(shí)用價(jià)值的。4第第 2 2 章章 需求分析需求分析2.12.1 系統(tǒng)工作流程分析系統(tǒng)工作流程分析傳統(tǒng)的醫(yī)藥管理模式是手工記帳的,但由于目前醫(yī)藥產(chǎn)品種類(lèi)繁多、銷(xiāo)售模式特殊、業(yè)務(wù)量大,單憑手工記帳已經(jīng)很難適
13、應(yīng)工作的需要。根據(jù)目前醫(yī)藥企業(yè)的實(shí)際需求,系統(tǒng)應(yīng)實(shí)現(xiàn)的具體功能如下:首先是客戶(hù)界面,客戶(hù)可以通過(guò)網(wǎng)絡(luò)進(jìn)行注冊(cè)認(rèn)證,然后可以通過(guò)身份登錄后進(jìn)行藥品的分類(lèi)查找和選購(gòu),可以查看藥品的詳細(xì)說(shuō)明,可以查找最新藥品,有購(gòu)物車(chē)功能,可以在線(xiàn)下訂單,有訂單詳細(xì)信息;為了能夠同客戶(hù)很好地交流,還要有訪(fǎng)客留言、系統(tǒng)公告、問(wèn)卷調(diào)查等功能。其次是管理界面,管理員登錄后可以對(duì)藥品信息進(jìn)行修改、增加和刪除操作,可以對(duì)藥品分類(lèi)信息進(jìn)行添加、刪除操作,可以對(duì)客戶(hù)信息進(jìn)行相關(guān)維護(hù),還要處理訪(fǎng)客留言、訂單信息以及系統(tǒng)其它相關(guān)操作等等。2.22.2 系統(tǒng)實(shí)現(xiàn)目標(biāo)系統(tǒng)實(shí)現(xiàn)目標(biāo)(1) 系統(tǒng)界面友好,操作簡(jiǎn)單(2) 可隨時(shí)掌握藥品的進(jìn)銷(xiāo)
14、存信息(3) 靈活準(zhǔn)確的收費(fèi),提高工作效率(4) 查詢(xún)靈活方便,數(shù)據(jù)安全可靠(5) 從用戶(hù)需求到售后服務(wù),形成一套嚴(yán)密、科學(xué)、完善的管理體系(6) 功能全面,實(shí)用性強(qiáng)5第第 3 3 章章 總體設(shè)計(jì)總體設(shè)計(jì)3.13.1 系統(tǒng)設(shè)計(jì)的總體思想系統(tǒng)設(shè)計(jì)的總體思想頁(yè)面模塊化:頁(yè)面模塊化:把頁(yè)面中一些常用的部分集成為模塊,例如頁(yè)面的頭和尾部,這樣設(shè)計(jì)新的頁(yè)面時(shí)如果重復(fù)出現(xiàn)的部分只需要拿現(xiàn)成的模塊來(lái)組裝就可以了。數(shù)據(jù)存取技術(shù):數(shù)據(jù)存取技術(shù):數(shù)據(jù)庫(kù)是管理信息系統(tǒng)的核心內(nèi)容。目前,Web 與數(shù)據(jù)庫(kù)接口技術(shù)有很多,其中 JDBC 是 Java 程序連接和存取數(shù)據(jù)庫(kù)的應(yīng)用程序接口,由一組用 Java 語(yǔ)言編寫(xiě)的類(lèi)與
15、接口組成,是執(zhí)行 SQL 語(yǔ)句的 Java API。在本管理信息系統(tǒng)中,采用了 JSP/Servlet+JDBC 的技術(shù),即客戶(hù)端不產(chǎn)生數(shù)據(jù)庫(kù)查詢(xún)命令,客戶(hù)端上的瀏覽器通過(guò) URL 和中間層的 Web 服務(wù)器建立連接。Web 服務(wù)器主要負(fù)責(zé)接收本地或遠(yuǎn)程瀏覽器的 HTTP 數(shù)據(jù)請(qǐng)求,然后中間層的 Servlet 收到請(qǐng)求后,通過(guò)執(zhí)行程序中的 SQL 語(yǔ)句,利用 JDBC 提供的標(biāo)準(zhǔn) API 對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪(fǎng)問(wèn)和相應(yīng)的操作處理。Servlet 再將查詢(xún)的數(shù)據(jù)傳給 JSP,最后生成標(biāo)準(zhǔn)的 JSP 頁(yè)面將結(jié)果返回給提出請(qǐng)求的瀏覽器。這樣,不僅將客戶(hù)端與數(shù)據(jù)庫(kù)服務(wù)器端分開(kāi),同時(shí)提高了數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)效率。3
16、.23.2 系統(tǒng)設(shè)計(jì)的體系和結(jié)構(gòu)系統(tǒng)設(shè)計(jì)的體系和結(jié)構(gòu)3.2.13.2.1 系統(tǒng)的設(shè)計(jì)體系系統(tǒng)的設(shè)計(jì)體系目前,在大多數(shù) Browser/Server 結(jié)構(gòu)的 Web 應(yīng)用中,瀏覽器直接通過(guò)HTML 或者 JSP 的形式與用戶(hù)交互,響應(yīng)用戶(hù)的請(qǐng)求。雖然很直觀,但是大多數(shù)管理信息系統(tǒng)操作的數(shù)據(jù)量都是驚人的,隨著代碼的增多會(huì)使 JSP 頁(yè)面臃腫不堪,Web 服務(wù)器的負(fù)荷過(guò)重。因此,在中間層上采用基于模型視圖控制器(MVC.Model-View-Controller)的設(shè)計(jì)模式。Model 層用來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯,6View 層用來(lái)顯示用戶(hù)界面,Controller 層主要負(fù)責(zé) View 層和 Model
17、層之間的控制關(guān)系。具體實(shí)現(xiàn)時(shí),把 Servlet 用作應(yīng)用程序的控制器,把 JSP 文檔作為視圖,JavaBeans 被用來(lái)表示模型。在這種設(shè)計(jì)模式下,各層次之間的數(shù)據(jù)傳遞如下圖: HTTP 請(qǐng)求 獲取數(shù)據(jù)轉(zhuǎn)交 請(qǐng)求 文檔輸出 更新模型圖 3-1: 各層次之間的數(shù)據(jù)傳遞示意圖3.2.23.2.2 系統(tǒng)的結(jié)構(gòu)架構(gòu)系統(tǒng)的結(jié)構(gòu)架構(gòu)管理信息系統(tǒng)(MIS)是一個(gè)由人、計(jì)算機(jī)等組成的能進(jìn)行信息的收集、傳遞、存儲(chǔ)、加工和使用的系統(tǒng)。隨著科技的發(fā)展,信息的膨脹,企業(yè)信息化成了企業(yè)在競(jìng)爭(zhēng)中處于不敗地位的有效手段之一。而 MIS 不僅能夠及時(shí)全面地提供信息和數(shù)據(jù),簡(jiǎn)化統(tǒng)計(jì)工作,對(duì)不同的管理層次提出不同的報(bào)告之外,
18、還能根據(jù)過(guò)去的數(shù)據(jù)預(yù)測(cè)未來(lái)的情況。因此,采用何種方法開(kāi)發(fā)出一種兼顧開(kāi)發(fā)效率和運(yùn)行效率,同時(shí)滿(mǎn)足分布式事件處理功能的管理信息系統(tǒng)就顯得尤為重要。采用三層架構(gòu)設(shè)計(jì),它的工作原理如圖:Controller (Servlet)View(JSP)Model(JavaBeans)DataBase7客戶(hù)機(jī) 瀏覽器http 服務(wù)器應(yīng)用程序服務(wù)器Servlet 容器數(shù)據(jù)庫(kù)JDBCservletjsp圖 3-2: 采用三層架構(gòu)設(shè)計(jì)的工作原理示意圖整個(gè)管理信息系統(tǒng)采用 Browser/Web/DataBase 的三層體系結(jié)構(gòu)。Web 服務(wù)器接受請(qǐng)求,通過(guò)應(yīng)用程序服務(wù)器執(zhí)行一個(gè) Java 服務(wù)器端小程序 Servle
19、t 并返回其輸出,從而實(shí)現(xiàn)與客戶(hù)機(jī)進(jìn)行信息資源的交互。數(shù)據(jù)庫(kù)服務(wù)器用來(lái)存儲(chǔ)管理信息系統(tǒng)中所用到的各種數(shù)據(jù),數(shù)據(jù)由數(shù)據(jù)庫(kù)管理程序直接錄入。系統(tǒng)的客戶(hù)端只需要一個(gè)瀏覽器即可。相關(guān)人員通過(guò)瀏覽器來(lái)查詢(xún)、增加、修改、刪除數(shù)據(jù),對(duì)信息進(jìn)行管理。3.33.3 系統(tǒng)的功能和結(jié)構(gòu)框圖系統(tǒng)的功能和結(jié)構(gòu)框圖 3.3.13.3.1 系統(tǒng)功能模塊系統(tǒng)功能模塊客戶(hù)端:客戶(hù)端:用戶(hù)注冊(cè)、登錄修改用戶(hù)個(gè)人信息藥品選購(gòu)(可以分類(lèi)查找藥品,或通過(guò)關(guān)鍵字查詢(xún)相關(guān)說(shuō)明)查看藥品詳細(xì)情況(包括藥名、英文、生產(chǎn)廠(chǎng)家、批號(hào)、單價(jià)、圖片、詳細(xì)介紹等)購(gòu)物車(chē)功能查看、修改、提交用戶(hù)訂單信息8新藥介紹客戶(hù)留言(包括添加、修改、刪除操作)問(wèn)卷調(diào)
20、查系統(tǒng)公告管理端:管理端:現(xiàn)有藥品管理:新增、修改、刪除、查看藥品分類(lèi)管理:新增、刪除用戶(hù)信息管理:查看、修改、刪除訂單管理:查看訂單清單,更新訂單付款,出貨狀態(tài),刪除訂單系統(tǒng)維護(hù):維護(hù)客戶(hù)留言、發(fā)系統(tǒng)公告3.3.23.3.2 系統(tǒng)結(jié)構(gòu)框圖:系統(tǒng)結(jié)構(gòu)框圖:全局結(jié)構(gòu)框圖:全局結(jié)構(gòu)框圖:9醫(yī)藥管理系統(tǒng)在線(xiàn)購(gòu)藥界面客戶(hù)端界面購(gòu)物車(chē)界面訂單信息管理登錄注冊(cè)界面客戶(hù)留言界面管理端界面藥品管理模塊添加藥品分類(lèi)模塊訂單信息模塊登錄模塊系統(tǒng)維護(hù)模塊JavaBeans客戶(hù)管理模塊藥品管理訂單管理用戶(hù)管理藥品分類(lèi)類(lèi)藥品分類(lèi)管理類(lèi)藥品類(lèi)藥品管理類(lèi)訂單類(lèi)訂單管理類(lèi)購(gòu)物車(chē)類(lèi)購(gòu)物車(chē)管理類(lèi)用戶(hù)類(lèi)用戶(hù)管理類(lèi)用戶(hù)登錄類(lèi)圖 3-
21、3: 全局結(jié)構(gòu)示意圖客戶(hù)界面的系統(tǒng)功能模塊圖:客戶(hù)界面的系統(tǒng)功能模塊圖:數(shù)據(jù)庫(kù)10客戶(hù)登錄在線(xiàn)購(gòu)藥在線(xiàn)購(gòu)藥查看購(gòu)物車(chē)查看訂單信息藥品查詢(xún)購(gòu)買(mǎi)查看藥品詳細(xì)客戶(hù)注冊(cè)登錄客戶(hù)留言修改購(gòu)買(mǎi)數(shù)量刪除已購(gòu)藥品提交購(gòu)物車(chē)清空購(gòu)物車(chē)?yán)^續(xù)購(gòu)藥查看訂單詳細(xì)購(gòu)買(mǎi)查看藥品詳細(xì)資料購(gòu)買(mǎi)圖 3-4: 客戶(hù)界面的系統(tǒng)功能模塊圖示意圖管理界面的系統(tǒng)功能模塊圖:管理界面的系統(tǒng)功能模塊圖:管理員登錄現(xiàn)有藥品管理添加新藥品添加藥品分類(lèi)訂單管理用戶(hù)管理系統(tǒng)維護(hù)查看藥品資料現(xiàn)有藥品管理刪除藥品添加新藥品添加藥品分類(lèi)刪除藥品分類(lèi)查看訂單資料刪除訂單查看用戶(hù)資料查看用戶(hù)資料修改用戶(hù)資料刪除用戶(hù)11圖 3-5: 管理界面的系統(tǒng)功能模塊圖示意
22、圖3.43.4 開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具 由于采用 JSP 架構(gòu),系統(tǒng)的功能加強(qiáng),但其開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具的選擇也是非常復(fù)雜。如上所述,系統(tǒng)結(jié)構(gòu)采用 Jsp/servlet + Javabeans + MySql;具體開(kāi)發(fā)工具:前臺(tái)頁(yè)面使用 DreamWeaver 2004 MX 開(kāi)發(fā),這種工具對(duì) JSP 的支持比FrontPage 好;對(duì)于組件 Bean 的編寫(xiě)和編譯用 JCreator,方便的提示符和小巧的內(nèi)存占用是我的首先;Jsp 服務(wù)器選用 TomCat5.0,后臺(tái)數(shù)據(jù)庫(kù) MySql4.0,為了更好地操作數(shù)據(jù)庫(kù),使用 EMS Sql Manager 3.0 進(jìn)行 window
23、s 圖形化界面的數(shù)據(jù)庫(kù)操作。第第 4 4 章章 開(kāi)發(fā)平臺(tái)和工具的簡(jiǎn)介開(kāi)發(fā)平臺(tái)和工具的簡(jiǎn)介4.14.1 JSPJSP 的簡(jiǎn)要說(shuō)明的簡(jiǎn)要說(shuō)明JSP 即 Java Server Pages,在電子商務(wù)開(kāi)發(fā)上,還可以選擇 ASP 平臺(tái)。但比較過(guò)兩者優(yōu)劣后才決定選擇 JSP。JSP 和 ASP 技術(shù)明顯的不同點(diǎn):開(kāi)發(fā)人員在對(duì)兩者各自軟件體系設(shè)計(jì)的深入了解的方式不同。JSP 技術(shù)基于平臺(tái)和服務(wù)器的互相獨(dú)立,輸入支持來(lái)自廣泛的,專(zhuān)門(mén)的,各種工具包,服務(wù)器的組件和數(shù)據(jù)庫(kù)產(chǎn)品開(kāi)發(fā)商所提供。相比之下,ASP 技術(shù)主要依賴(lài)微軟的技術(shù)支持。JSP 技術(shù)依附于一次寫(xiě)入,之后,可以運(yùn)行在任何具有符合 JavaTM 語(yǔ)法結(jié)
24、構(gòu)的環(huán)境。取而代之過(guò)去依附于單一平臺(tái)或開(kāi)發(fā)商,JSP 技術(shù)能夠運(yùn)行在任何WEB 服務(wù)器上并且支持來(lái)自多家開(kāi)發(fā)商提供的各種各樣工具包。這種基于組件的模式很有效提高應(yīng)用程序的開(kāi)發(fā)效率,因?yàn)檫@種模式能夠使開(kāi)發(fā)人員利用快捷的子組件快速創(chuàng)建模板應(yīng)用程序,然后再整合一些附加功能以后便可使用。像這樣有效的方法在 JSP 中無(wú)處不在,并可將其打包成一個(gè)Javabean 或一個(gè)工業(yè)標(biāo)準(zhǔn)化的 Javabean 組件。 終上所述,JSP 繼承 JAVA 一貫的跨平臺(tái)、易維護(hù)的特性,是我開(kāi)發(fā)的首選。124.24.2 MySqlMySql 的簡(jiǎn)要說(shuō)明的簡(jiǎn)要說(shuō)明 選擇一個(gè)好的數(shù)據(jù)庫(kù)是開(kāi)發(fā)一個(gè)系統(tǒng)的前提,當(dāng)然用 MySql
25、 也是與其它數(shù)據(jù)庫(kù)比較過(guò)的。下面列出 MySql 與其它數(shù)據(jù)庫(kù)的全方位對(duì)比:安全性:安全性:SQL server 沒(méi)有獲得任何安全證書(shū)。 Oracle Server獲得最高認(rèn)證級(jí)別的 ISO 標(biāo)準(zhǔn)認(rèn)證。DB2獲得最高認(rèn)證級(jí)別的 ISO 標(biāo)準(zhǔn)認(rèn)證。MySql獲得最高認(rèn)證級(jí)別的 ISO 標(biāo)準(zhǔn)認(rèn)證。多線(xiàn)程:多線(xiàn)程:MySQL 是完全多線(xiàn)程化的,每個(gè)連接有它自己的線(xiàn)程,這意味著沒(méi)有線(xiàn)程必須等待另一個(gè)線(xiàn)程(除非一個(gè)線(xiàn)程正在修改一張表,另外的線(xiàn)程想要存取);而在 SQL server 中,一旦一個(gè)連接被建立了,所有其它線(xiàn)程必須等到第一個(gè)線(xiàn)程完成,不管連接正在運(yùn)行的查詢(xún)是短的或是長(zhǎng)的。 聯(lián)結(jié):聯(lián)結(jié):如果改變
26、一個(gè) SELECT 中的表的順序,SQL Server 可能變得異常地慢。在基準(zhǔn)套件中,比 MySQL 要慢超過(guò) 15000 倍的時(shí)間。這是由于 SQL Server 缺乏一個(gè)聯(lián)結(jié)優(yōu)化器以便用最佳的順序排定表。 Perl 接口:接口:MySql 和 SQL Server 有基本相同 Perl 接口,有一些增加的功能。 價(jià)格:價(jià)格: MySql 的免費(fèi)成為不可取代的優(yōu)勢(shì)。終上所述,MySQL 以其極高的性?xún)r(jià)比成為中小型數(shù)據(jù)建庫(kù)的首選,本系統(tǒng)也選用 MySql。4.34.3 系統(tǒng)配置過(guò)程系統(tǒng)配置過(guò)程 由于 JSP 架構(gòu)采用不同公司的軟件產(chǎn)品,所以配置的復(fù)雜性是肯定的。下面列出其配置詳細(xì)過(guò)程:所需軟
27、件:所需軟件:(1) j2sdk-1_4_2-windows-i586.exe (2) jakarta-tomcat-5.0.28.exe13(3) mysql-4.0.24-win.zip(mysql 有 5.0 的 bate 版,不過(guò)對(duì)其 NullPointException 出錯(cuò)一直是不能被廣泛接受的原因,在本系統(tǒng)下也只能用較為穩(wěn)定的 4.0 版本。)(4) jdbc 驅(qū)動(dòng)(mysql 的驅(qū)動(dòng)程序,其中 connector 采用 mysql-connector-java-3.0.8-stable-bin.jar可以正常運(yùn)行;而在后面一個(gè)較新的版本會(huì)出現(xiàn) StringOutOfRange
28、錯(cuò)誤,用最新的版本又會(huì)因?yàn)楸緮?shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)間格式已經(jīng)不支持而不能正常讀取,所以版本的選擇是非常重要的。)一、安裝一、安裝 j2sdk在 Windows 下,直接運(yùn)行下載的 j2sdk-1_4_1_01-windows-i586.exe 文件,根據(jù)安裝向?qū)О惭b到一個(gè)目錄,例如安裝到 d:serverj2sdk。1.配置環(huán)境變量:添加 CLASSPATH 變量./;%CLASSPATH%;D:serverj2sdk1.4.0libdt.jar;d:serverj2sdk1.4.0libtools.jar;2.添加 JAVA_HOME 變量,變量值為 d:serverj2sdk1.4.03.在原來(lái)的
29、 path 變量中,添加 d:serverj2sdk1.4.0bin,重新啟動(dòng)二、二、Tomcat 的安裝的安裝jakarta-tomcat-5.0.28.exe 安裝文件,設(shè)安裝目錄為 d:servertomcat。下面設(shè)置環(huán)境變量:同 jdk 的環(huán)境變量,添加變量 TOMCAT_HOME,值為 d:servertomcat;增加變量 CATALINA_HOME,值為 d:tomcatserver,在 path 變量中加入d:servertomcatbin。下面啟動(dòng) tomcat,運(yùn)行 tomcat 目錄下的 bin/startup.bat 文件就出現(xiàn) tomcat 運(yùn)行控制臺(tái),則 tomc
30、at 安裝成功。三、安裝三、安裝 MySQL第一步:解壓 mysql-4.0.24-win.zip,運(yùn)行 mysql 安裝文件,把 mysql 安裝到d:servermysql第二步:在環(huán)境變量 path 中加入 d:servermysqlbin第三步:進(jìn)入 d:servermysqlbin 目錄,運(yùn)行 winmysqladmin,剛會(huì)出現(xiàn)對(duì)話(huà)框,設(shè)置 mysql 用戶(hù)密碼。第四步:進(jìn)入 dos,進(jìn)入 mysql/bin 下,運(yùn)行以下命令打開(kāi) mysqlmysqld-nt standalone,則 mysql 開(kāi)啟四、安裝四、安裝 MySQL 的驅(qū)動(dòng)類(lèi)的驅(qū)動(dòng)類(lèi) jdbc解開(kāi) jdbc 驅(qū)動(dòng)包,
31、把里面的 com 文件夾復(fù)制到 jsp 相應(yīng)的位置,可以是 tomcat的根目錄 common/classes 文件夾下,也可以是 jsp 網(wǎng)站 class 類(lèi) WEB-INF/class/下。當(dāng)加載驅(qū)動(dòng)程序時(shí),以便能找到相關(guān)的類(lèi),或者把 jdbc 包的路徑加入到classpath 變量中。144.44.4 配置關(guān)鍵性問(wèn)題的解決配置關(guān)鍵性問(wèn)題的解決 上述配置正確后,只是可以成功連接,但還有一些需要解決的問(wèn)題才能正常運(yùn)行 JSP 程序。4.4.1 Servlet 和 JSP 性能調(diào)整調(diào)整方法調(diào)整方法 1:禁止:禁止 servlet 和和 jsp 的自動(dòng)重載的自動(dòng)重載 為了節(jié)約開(kāi)發(fā)時(shí)間,在開(kāi)發(fā)階段
32、 Servlet/JSP 容器提供自動(dòng)重載功能,方便在修改 Servlet/JSP 后不用重新啟動(dòng)服務(wù)。可是,在生產(chǎn)環(huán)境下面,卻是占用大量開(kāi)銷(xiāo),因?yàn)檫M(jìn)行了沒(méi)有必要的重新載入的操作,所以帶來(lái)了很懷的性能影響。同時(shí),在部分類(lèi)載入,部分為載入的時(shí)候也可能帶來(lái)各種奇怪的沖突。因此在J2EE 的生產(chǎn)環(huán)境下關(guān)閉自動(dòng)載入功能可以得到更好的性能。調(diào)整方法調(diào)整方法 2:控制:控制 HttpSession 在默認(rèn)情況下,不要在 jsp 頁(yè)面中創(chuàng)建 HttpSessions 對(duì)象,jsp 頁(yè)面默認(rèn)會(huì)自動(dòng)創(chuàng)建 HttpSessions,如果 jsp 頁(yè)面中不需要 HttpSessions,為了節(jié)省一些性能,使用下面的
33、頁(yè)面指令避免自動(dòng)創(chuàng)建 HttpSessions 對(duì)象: 調(diào)整方法調(diào)整方法 3:選擇正確的包含機(jī)制:選擇正確的包含機(jī)制 在 jsp 中有兩種方法使用包含文件:包含指令() 和包含動(dòng)作 ()。包含指令在轉(zhuǎn)換的過(guò)程中包含文件內(nèi)容;也就是說(shuō),在一個(gè)頁(yè)面轉(zhuǎn)換成一個(gè) servlet 的時(shí)候。包含動(dòng)作在請(qǐng)求處理的階段包含文件內(nèi)容;也就是說(shuō),在一個(gè)用戶(hù)請(qǐng)求頁(yè)面的時(shí)候。包含指令快于包含動(dòng)作。因此,除非被包含的內(nèi)容經(jīng)常變化,應(yīng)該使用包含指令提升性能。 調(diào)整方法調(diào)整方法 4:選擇正確的范圍在使用:選擇正確的范圍在使用 useBean 動(dòng)作動(dòng)作 Jsp 頁(yè)面的一個(gè)強(qiáng)大功能就是在 jsp 中交互使用 JavaBeans
34、 組件。通過(guò)使用動(dòng)作標(biāo)簽,JavaBeans 可以被直接的嵌入 jsp 頁(yè)面中。語(yǔ)法如下: 15 范圍屬性指定了 bean 的作用范圍。它的默認(rèn)值是 page??梢愿鶕?jù)系統(tǒng)要求選擇正確的范圍。否則它會(huì)影響到應(yīng)用系統(tǒng)的性能。 4.4.24.4.2 MysqlMysql 與與 JSPJSP 網(wǎng)頁(yè)中文亂碼問(wèn)題網(wǎng)頁(yè)中文亂碼問(wèn)題以以 GBKGBK 字符集建庫(kù)建表:字符集建庫(kù)建表:用 EMS 來(lái)建 mysql 的數(shù)據(jù)庫(kù)及表,建庫(kù)時(shí),從 EMS 菜單中選 create Database.新建一個(gè)數(shù)據(jù)庫(kù),CharacterSet 選 gbk_bin;后面建表時(shí),也要選擇同樣的字符集。 連接數(shù)據(jù)庫(kù)的連接數(shù)據(jù)庫(kù)的
35、 URL 后加參數(shù):后加參數(shù):假設(shè)新建的數(shù)據(jù)庫(kù)是 testdb,那么連接數(shù)據(jù)庫(kù)的 url 應(yīng)該為: jdbc:mysql:/localhost:3306/testdb?useUnicode=true&characterEncoding=gbk 每個(gè)每個(gè) JSP 頁(yè)面都要聲明該中文字符集:頁(yè)面都要聲明該中文字符集:在每個(gè) JSP 頁(yè)面的最上面都加上一句: ,這樣才能保證 JSP 頁(yè)面中的中文顯示正常。 上述都是在實(shí)際進(jìn)行 JSP 頁(yè)面配置時(shí)遇到的問(wèn)題,JSP 配置的復(fù)雜性是由于各個(gè)版本開(kāi)發(fā)的不一致造成的,在調(diào)試頁(yè)面的同時(shí)也是對(duì)自己各方面知識(shí)水平的極大挑戰(zhàn)。第第 5 5 章章 系統(tǒng)的詳細(xì)設(shè)計(jì)系統(tǒng)的
36、詳細(xì)設(shè)計(jì)5.15.1 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)5.1.15.1.1 數(shù)據(jù)庫(kù)關(guān)系模式的設(shè)計(jì)數(shù)據(jù)庫(kù)關(guān)系模式的設(shè)計(jì)訂單(訂單號(hào),藥品編號(hào),訂貨數(shù)量)藥品信息(藥品名稱(chēng),藥品分類(lèi),英文名稱(chēng),生產(chǎn)廠(chǎng)家,批準(zhǔn)文號(hào),藥品簡(jiǎn)介,單價(jià),總數(shù)量,剩余數(shù)量,登記時(shí)間,圖片)管理員(用戶(hù)名,密碼)藥品分類(lèi)(分類(lèi)編號(hào),分類(lèi)名稱(chēng))訂單詳細(xì)信息(訂單編號(hào),用戶(hù)編號(hào),提交訂單的時(shí)間,交貨時(shí)間,總金16額,備注,用戶(hù) IP,是否付款,是否發(fā)貨)用戶(hù)(用戶(hù)名,密碼,真實(shí)姓名,性別,地址,聯(lián)系電話(huà),郵編,E-mail,注冊(cè)時(shí)間,注冊(cè) IP)5.1.25.1.2 數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)(表結(jié)構(gòu))數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)(表結(jié)構(gòu))訂單信息列表:訂單
37、信息列表:表 5-1:訂單信息列表FieldTypeNullKeyDefaultExtraCommentIDint(11)NULLPRINULLauto_increment主鍵,遞增orderIdint(11)NULL00-訂單號(hào)MedIDint(11)NULL00-藥品編號(hào)Amountint(11)NULLYESNULL-訂貨數(shù)量SQL 語(yǔ)句:語(yǔ)句:CREATE TABLE allorder ( ID int(11) NOT NULL auto_increment, orderId varchar(20) NOT NULL default , MedID int(11) NOT NULL d
38、efault 0, Amount int(11) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=latin1;藥品信息列表:藥品信息列表:表 5-2:藥品信息列表FieldTypeNullKeyDefaultExtraCommentIDint(11)-PRI(NULL)auto_increment主鍵,遞增MedNamevarchar(40)-藥品名稱(chēng)MedClassint(11)-0-藥品分類(lèi)EnNamevarchar(25)YES-(NULL)-英文名Companyvarchar(150)YES-(NULL)-生產(chǎn)
39、廠(chǎng)家MedNovarchar(30)YES-(NULL)-批準(zhǔn)文號(hào)17ContexttextYES-(NULL)-藥品簡(jiǎn)介PrincefloatYES-(NULL)-單價(jià)Amountint(11)YES-(NULL)-總數(shù)量Leav_numberint(11)YES-(NULL)-剩余數(shù)量RegTimedatetime-登記時(shí)間picturevarchar(200)YES-(NULL)-圖片SQL 語(yǔ)句:語(yǔ)句:CREATE TABLE med ( ID int(11) NOT NULL auto_increment, MedName varchar(40) NOT NULL default ,
40、 MedClass int(11) NOT NULL default 0, EnName varchar(25) default NULL, Company varchar(150) default NULL, MedNo varchar(30) default NULL, Content text, Prince float default NULL, Amount int(11) default NULL, Leav_number int(11) default NULL, RegTime datetime NOT NULL default 0000-00-00 00:00:00, pic
41、ture varchar(200) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=latin1;管理員信息表:管理員信息表:表 5-3:管理員信息列表FieldTypeNullKeyDefaultExtraCommentAdminUservarchar(20)YES-(NULL)-用戶(hù)名AdminPassvarchar(50)YES-(NULL)-密碼SQL 語(yǔ)句:語(yǔ)句:CREATE TABLE meddmin ( AdminUser varchar(20) default NULL, AdminPass varcha
42、r(50) default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;藥品分類(lèi)表:藥品分類(lèi)表:表 5-4:藥品分類(lèi)表18FieldTypeNullKeyDefaultExtraCommentIDint(11)-PRI(NULL)auto_increment分類(lèi)編號(hào)Classnamevarchar(30)-(NULL)-分類(lèi)名稱(chēng)SQL 語(yǔ)句:語(yǔ)句:CREATE TABLE medclass ( ID int(11) NOT NULL auto_increment, ClassName varchar(30) NOT NULL default , PRI
43、MARY KEY (Id) ENGINE=MyISAM DEFAULT CHARSET=latin1;訂單詳細(xì)表:訂單詳細(xì)表:表 5-5:訂單詳細(xì)表FieldTypeNullKeyDefaultExtraCommentIdint(11)-(NULL)-主鍵,遞增orderIdvarchar(20)-訂單編號(hào)UserIdint(11)-0-用戶(hù)編號(hào)SubmitTimedatetime-交單時(shí)間ConsignmentTimedatetimeYES-(NULL)-交貨時(shí)間TotalPricefloatYES-(NULL)-總金額contenttextYES-(NULL)-備注IPAddressvar
44、char(20)YES-(NULL)-用戶(hù) IPIsPayoffint(11)YES-(NULL)-是否付款I(lǐng)sSalesint(11)YES-(NULL)-是否發(fā)貨SQL 語(yǔ)句:語(yǔ)句:CREATE TABLE orders ( Id int(11) NOT NULL auto_increment, orderId varchar(20) NOT NULL default , UserId int(11) NOT NULL default 0, SubmitTime datetime NOT NULL default 0000-00-00 00:00:00, ConsignmentTime d
45、atetime default NULL, TotalPrice float default NULL, content text, IPAddress varchar(20) default NULL,19 IsPayoff int(11) default NULL, IsSales int(11) default NULL, PRIMARY KEY (Id) ENGINE=MyISAM DEFAULT CHARSET=latin1;用戶(hù)信息表:用戶(hù)信息表:表 5-6:用戶(hù)信息表FieldTypeNullKeyDefaultExtraCommentIDint(11)-PRI(NULL)aut
46、o_incre主鍵,遞增UserNamevarchar(20)-用戶(hù)名Passwordvarchar(50)-密碼Namesvarchar(20)YES-(NULL)-真實(shí)姓名Sexchar(2)YES-(NULL)-性別Addressvarchar(150)YES-(NULL)-地址Phonevarchar(25)YES-(NULL)-聯(lián)系電話(huà)Postvarchar(8)YES-(NULL)-郵編Emainvarchar(5)YES-(NULL)-E-mailRegTimedatetimeYES-(NULL)-注冊(cè)時(shí)間RegIpAddressvarchar(20)YES-(NULL)-注冊(cè)
47、IPSQL 語(yǔ)句:語(yǔ)句:CREATE TABLE med_user ( Id int(11) NOT NULL auto_increment, UserName varchar(20) NOT NULL default , PassWord varchar(50) NOT NULL default , Names varchar(20) default NULL, Sex char(2) default NULL, Address varchar(150) default NULL, Phone varchar(25) default NULL, Post varchar(8) default
48、 NULL, Email varchar(50) default NULL, RegTime datetime default NULL, RegIpAddress varchar(20) default NULL, PRIMARY KEY (Id) ENGINE=MyISAM DEFAULT CHARSET=latin1;205.25.2 數(shù)據(jù)庫(kù)的連接數(shù)據(jù)庫(kù)的連接 下面首先介紹數(shù)據(jù)庫(kù)連接 Bean 的編寫(xiě),即 util.DataBase 類(lèi),這是一個(gè)公共類(lèi),其它類(lèi)如果要連接數(shù)據(jù)庫(kù),只要構(gòu)造這個(gè)類(lèi)的對(duì)象就可以了。附主要代碼和注釋如下:package mms.util;/*注釋 *數(shù)據(jù)庫(kù)連接專(zhuān)用
49、包 *Company: med shop online * by :zhourong * version 1.0 */import java.sql.*;public class DataBase public Connection conn; public Statement stmt; public ResultSet rs=null; public String sqlStr=; public DataBase() this.connect(); public boolean connect() try/注冊(cè)驅(qū)動(dòng)程序 Class.forName(org.gjt.mm.mysql.Driv
50、er).newInstance();/連接字符串,有連接數(shù)據(jù)庫(kù)的 IP,用戶(hù)名,密碼以及編碼格式等 String url =jdbc:mysql:/127.0.0.1/MedStore?user=root&useUnicode=true&characterEncoding=gbk; conn=DriverManager.getConnection(url); stmt = conn.createStatement (); catch(Exception ee) System.out.println(connect db error:+ee.getMessage(); return false;
51、21 return true; public static void main(String args) try DataBase db = new DataBase(); db.connect(); catch(Exception e) e.printStackTrace(); 5.35.3 功能模塊的詳細(xì)設(shè)計(jì)功能模塊的詳細(xì)設(shè)計(jì)5.3.15.3.1 組件包結(jié)構(gòu)組件包結(jié)構(gòu) 本系統(tǒng)基于 JavaBeans 技術(shù),用 JCreator 建立工程 MMS,系統(tǒng)包圖如下:mms.runloginop_medop_medclassop_buyop_userMMSmms.utilDataBasedataF
52、ormatmms.medallordermedmedclassordershopcaruser圖 5-1:系統(tǒng)包示意圖run 包下有五個(gè)類(lèi):包下有五個(gè)類(lèi):login 類(lèi):管理用戶(hù)登錄。op_med 類(lèi):管理藥品,包括藥品的查詢(xún)、修改、刪除、添加等。22op_medclass 類(lèi):管理藥品分類(lèi),包括藥品分類(lèi)的查詢(xún)、添加和刪除。op_buy 類(lèi):管理訂單,包括訂單的查詢(xún)、添加、修改和刪除等。op_user 類(lèi):管理用戶(hù),包括用戶(hù)的查詢(xún)、添加、刪除和修改等。med 包下有六個(gè)類(lèi):包下有六個(gè)類(lèi):allorder 類(lèi):訂單列表類(lèi)。med 類(lèi):藥品類(lèi)。medclass 類(lèi):藥品分類(lèi)類(lèi)。order 類(lèi):訂單
53、類(lèi)。shopcar 類(lèi):購(gòu)物車(chē)類(lèi)。user 類(lèi):用戶(hù)類(lèi)。util 包下有兩個(gè)類(lèi):包下有兩個(gè)類(lèi):DataBase 類(lèi):該類(lèi)主要負(fù)責(zé)數(shù)據(jù)庫(kù)的連接。dataFormat 類(lèi):該類(lèi)負(fù)責(zé)數(shù)據(jù)的格式轉(zhuǎn)換,例如:字符串格式化為 HTML代碼輸出等。5.3.25.3.2 具體模塊的代碼和相應(yīng)界面具體模塊的代碼和相應(yīng)界面a.a.字符處理字符處理 BeanBean 的編寫(xiě):的編寫(xiě): 在程序設(shè)計(jì)中經(jīng)常會(huì)涉及到有關(guān)字符串的處理,把這些處理方法集合到一個(gè)類(lèi)中從而方便操作,即 util.dataFormat.java,相關(guān)代碼和注釋如下:package mms.util;import java.lang.*;import
54、 java.util.*;public class dataFormat public dataFormat() /*注釋 * 把字符串轉(zhuǎn)換成適合于網(wǎng)頁(yè)顯示的文本 * param s * return */ public static String toHtml(String s) if (s=null) return s;23 s=strReplace(s,&,&); s=strReplace(s,>); s=strReplace(s,"); s=parseReturn(s,n ); return s; /*注釋 * 把字
55、符串 sBody 中的 sFrom 用 sTo 替換 * param sBody * param sFrom * param sTo * return */ public static String strReplace(String sBody, String sFrom, String sTo) int i,j,k,l; if (sBody=null | sBody.equals() return ; i = 0; j = sFrom.length(); k = sTo.length(); StringBuffer sss = new StringBuffer(sBody.length()
56、; boolean bFirst=true; l = i; while (sBody.indexOf(sFrom,i)!=-1) i = sBody.indexOf(sFrom,i); sss.append(sBody.substring(l,i); sss.append(sTo); i += j; l = i; sss.append(sBody.substring(l); return sss.toString(); /*注釋* 把字符串中的rn轉(zhuǎn)換成n * param String sBody : 要進(jìn)行替換操作的字符串 * param String sEndwith : 要替換成為的字符
57、串24 */ public static String parseReturn(String sBody, String sEndwith) StringTokenizer t = new StringTokenizer(sBody, rn); StringBuffer sss = new StringBuffer(sBody.length(); boolean bFirst=true; if (sEndwith.trim().equals() sEndwith=n; while (t.hasMoreTokens() String s=t.nextToken(); s=s.trim(); wh
58、ile (s.startsWith() s=s.substring(2); if (!s.equals() if (bFirst) bFirst=false; else sss.append(sEndwith); sss.append(s); return sss.toString(); /*注釋 * 將字符串格式化成 HTML 代碼輸出 * 只轉(zhuǎn)換特殊字符,適合于 HTML 中的表單區(qū)域 * param str 要格式化的字符串 * return 格式化后的字符串 */ public static String toHtmlInput(String str) if (str = null)
59、return null; String html = new String(str); html = strReplace(html, &, &); html = strReplace(html, , >); return html; /*注釋 * 將普通字符串格式化成數(shù)據(jù)庫(kù)認(rèn)可的字符串格式25 * param str 要格式化的字符串 * return 合法的數(shù)據(jù)庫(kù)字符串 */ public static String toSql(String str) String sql = new String(str); return strReplace(sql, , ); b.藥品
60、藥品 Bean 的編寫(xiě)的編寫(xiě) 應(yīng)用面向?qū)ο蟮乃枷氚丫哂泄残缘膶?shí)體抽象成一個(gè)類(lèi),這個(gè) med.med 便是這樣的類(lèi)。package mms.med;public class med private long Id; /ID 序列號(hào) private String MedName; /藥名 private int MedClass; /藥品類(lèi)別 private String classname ; /藥品類(lèi)別名 private String EnName; /英文名稱(chēng) private String Company; /生產(chǎn)廠(chǎng)家 private String MedNo ; /批準(zhǔn)文號(hào) private
61、 String Content ; /藥品介紹 private float Prince ; /單價(jià) private int Amount ; /總數(shù)量 private int Leav_number ; /剩余數(shù)量 private String RegTime ; /登記時(shí)間 private String picture ; /藥品圖片 public med() Id = 0; MedName = ; MedClass = 0; classname = ; EnName = ; Company = ; MedNo = ; Content = ;26 Prince = 0; Amount =
62、0; Leav_number = 0; RegTime = ; public void setId(long newId) this.Id = newId; public long getId() return Id; public void setMedName(String newMedName) this.MedName = newMedName; public String getMedName() return MedName; public void setMedClass(int newMedClass) this.MedClass = newMedClass; public i
63、nt getMedClass() return MedClass; public void setClassname(String cname) this.classname = cname; public String getClassname() return classname; public void setEnName(String newEnName) this.EnName = newEnName; public String getEnName() return EnName; public void setMedNo(String newMedNo) this.MedNo =
64、 newMedNo;27 public String getMedNo() return MedNo; public void setCompany(String newCompany) this. Company = newCompany; public String getCompany () return Company; public void setContent(String newContent) this.Content= newContent; public String getContent() return Content; public void setPrince(f
65、loat newPrince) this.Prince = newPrince; public float getPrince() return Prince; public void setAmount(int newAmount) this.Amount = newAmount; public long getAmount() return Amount; public void setLeav_number(int newLeav_number) this.Leav_number = newLeav_number; public int getLeav_number() return L
66、eav_number; public void setRegTime(String newRegTime) this.RegTime = newRegTime; 28 public String getRegTime() return RegTime; public void setPicture(String newPicture) this.picture = newPicture; public String getPicture() return picture; ;c.藥品分類(lèi)藥品分類(lèi) Bean 的編寫(xiě):的編寫(xiě): med.medclass 類(lèi),對(duì)藥品分類(lèi)的抽象,其寫(xiě)法類(lèi)似于 med 類(lèi),都是加入相應(yīng)的 get、set 屬性值。package mms.med;public class medclass private int Id;/ID 序列號(hào) private String ClassName;/藥品類(lèi)別 public medclass() Id = 0; ClassName = ; public medclass(int newId, String newname) Id
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生物對(duì)照實(shí)驗(yàn)專(zhuān)題復(fù)習(xí)課件
- 初中物理資源九年級(jí)第十五單元課件串并聯(lián)識(shí)別
- 咯血與嘔血課件
- What's_your_number_課件
- 外研版七下Module3Unit1(教育精品)
- 浙美版三年級(jí)上冊(cè)美術(shù)第15課-剪雪花教學(xué)ppt課件
- 蘇教版六年級(jí)下冊(cè)數(shù)學(xué)正比例和反比例的意義課件
- 蘇教版五下《單式折線(xiàn)統(tǒng)計(jì)圖》教研課件
- 固態(tài)相變概論
- 三角形全等的判定復(fù)習(xí)-課件2
- 太陽(yáng)能發(fā)展趨勢(shì)課件
- 道路工程監(jiān)理最新規(guī)劃范本課件
- SPC及CPK教程(理論篇)課件
- Travel-Plan旅行計(jì)劃-PPT
- 新冠肺炎疫情期間醫(yī)務(wù)人員防護(hù)技術(shù)指南