《基于.程序设计语言药品管理系统的设计和实现.docx》由会员分享,可在线阅读,更多相关《基于.程序设计语言药品管理系统的设计和实现.docx(20页珍藏版)》请在课桌文档上搜索。
1、毕业论文题目:基于JAVA药品管理系统的设计和实现专业:班级:姓名:学号:指导教师:日期:摘要药品管理系统是现代化在线医药管理必不可少的根基设施与技术支撑环境。本系统前台采用MyECIiPSe开发,后台采用MySqI作为数据库开发工具,这些技术目前相比照拟成熟,方便产品的维护。本系统可以实现用户在线注册、登录、修改密码,用户进展药品添加和管理、供应商的添加和管理,还可查询供应商提供的药品清单。JSP(JavaServerPages)是由SunMicrososystems公司倡导的、许多公司参与的一起建设的一种动态网页技术标准,JSP技术是在SerVlet技术根基上开展起来的,它在飞速开展过程中
2、,现在已经成为Java服务器编程的重要组成局部。虽然它未成型,但是它必然将和J2EE一起开展。MySql是一种高效的关系数据库系统,它与WindowsNT/2000及Windows9x等操作系统严密集成。这种安排使MySqI能充分利用操作系统所提供的特性。对于今天复杂的客户/服务器系统来说,MySql是一个很好的选择。关键字:药品管理系统;Java;MySql;AbstractThemedicaladministrativesystemisthemodernizedonlinemedicinemanagementsystem,whichistheessentialinfrastructurea
3、ndtechnologicalback-upenvironment.ThissystematicfrontdeskadoptsDreamWeaverdevelopment,andthebackstagesupporteradoptsMySqlasthedatabasedevelopinginstrument.Thesetechnologiesarerelativematureatpresent,facilitatethemaintenanceoftheproducts.Thissystemcanrealizeusersonlineregistration,log-in,revisionofpe
4、rsonalinformation,selectionandorderofmedicines,examinationofthedetailedinformationofmedicines,submittaloftheorderinformation,maintenanceandmanagementofmedicines,Classificationofthemedicines,usersinformationandorderinformationonline.JSP(JavaServerPages)isadvocatedbySunMicrososystemsCompany,akindofdyn
5、amicwebpagetechnicalstandardofsetting-uptogetherwhichalotofcompaniesparticipatein.JSPtechnologyisdevelopedonServlettechnologicalfoundation.Inthecourseofdevelopingatfullspeed,ithavealreadybecometheimportantcomponentofserverprogrammingofJavanow.Thoughitdoes,tshape,itmustdevelopwithJ2EE.MySqlisaneffici
6、entrelationdatabasesystem.ltiscloseintegratedwithWindows2000/NTandWindows9XOS.MySqlcanutilizefullythecharacteristicsprovidedbyOS.MySqlisagoodchoiceforthecomplicatedCilentZServersystemsnowaday.KeyWord:MedicalAdministrativeSystem;JSP;MySql目录,i*l1ABSTRACT2(!2第1章开发的目的和意义4第2章需求分析41.1 系统工作流程分析42. 2系统实现目标4
7、第3章总体设计53.1系统设计的总体思想53.2系统设计的体系和构造53. 2.1系统的设计体系53. 2.2系统的构造架构63. 3系统的功能和构造框图63. 3.1系统功能模块63. 3.2系统构造框图:73. 4开发平台和开发工具7第4章开发平台和工具的简介74. 1JSP的简要说明75. 2MYSQL的简要说明86. 3系统配置过程87. 4配置关键性问题的解决98. 4.1Servlet和JSP性能调整99. 4.2Mysql与JSP网页中文乱码问题9第5章系统的详细设计95.1数据库的实现105.1.1 数据库关系模式的设计105.1.2 数据库的具体实现表构造105.2数据库的连
8、接105.3功能模块的详细设计115. 3.1注册功能模块115. 3.2登录功能模块125. 3.3添加药品功能模块135. 3.4药品管理功能模块145. 3.5添加供应商功能模块155. 3.6供应商管理功能模块155. 3.7修改密码功能模块165. 3.8查询供应商提供的药品功能模块1710. 3.9主界面19第6章总结1911. 1912. 献20第1章开发的目的和意义开发软件的一个目的是针对目前普遍的药品管理系统存在的功能不全,操作复杂,系统要求高等一系列问题。该管理系统采用电子商务设计模式,可靠,方便,并且功能齐全。当然对该软件的态度是渴望获得显著的社会效益。开发软件的另一个目
9、的是使其具有强大的实用价值,即它可以满足中小型医药公司的管理需要。随着小型医药企业规模的扩大,手工工作已经不能满足业务上的需求。而该药品管理系统的实施,能集中处理药品的进销存业务,管理好企业的应收应付账目,为企业的调整开展创造一个新的条件。随着我国市场经济的蓬勃开展和人们对医药产品需求的迅速增加,医药行业正处于一个高速开展的时期。行业的快速开展必然导致竞争的加剧,要想在剧烈的市场竞争中谋求开展,客观上要求企业必须加强内部管理,提高运营效率。另外,由于医药产品种类繁多、销售模式特殊、业务最大,单凭手工记帐已很难适应工作的需要。医药作为一个关系到人们安康的特殊行业,国家对此又有一些不同于其他行业的
10、管理政策,这些都加大了管理的难度。如何尽快建设和完善现代企业的信息化管理机制问题,已成为医药企业开展的关键所在。而方便、安全、快捷的医药管理软件系统正是在这样的背景下开展起来的。这种管理软件对硬件的要求很低,一般有一个比较简单的服务器与PC机组成的网络即可,再加上使用比较廉价、性能不错的软件,这样就可以以较低的成本来实现一个足够使用的功能,而这种模式也正满足了那种中小型医药公司的要求。但是目前对这种管理软件的开发还处于一种比较原始的阶段。开发者往往都是出于资金和时间的顾虑使用比较陈旧的技术,而且各为己见,并且很少涉及网络。可是当今是一个网络化的社会,单机版的管理软件多如牛毛,去开发一个类似的软
11、件无疑是一种在时间上、精神上和资源上的极大浪费。所以为这种有需要的中小型企业开发一种基于网络的医药管理软件是非常有实用价值的。第2章需求分析2.1 系统工作流程分析传统的医药管理模式是手工记帐的,但由于目前医药产品种类繁多、销售模式特殊、业务量大,单凭手工记帐已经很难适应工作的需要。根据目前医药企业的实际需求,系统应实现的具体功能如下:首先是客户界面,客户可以通过网络进展注册认证,然后可以通过身份登录后进展药品添加和管理,供应商的添加和管理,查询供应商提供的药品。其次是管理界面,管理员登录后可以对药品信息进展增加和删除操作,可以对供应商信息进展添加、删除操作,可以对客户信息进展相关维护等等。2
12、.2 系统实现目标(1)系统界面友好,操作简单(2)可随时掌握药品的进销存信息(3)查询灵活方便,数据安全可靠(4)从用户需求到售后服务,形成一套严密、科学、完善的管理体系(5)功能全面,实用性强第3章总体设计3.1系统设计的总体思想页面模块化:把页面中一些常用的局部集成为模块,例如页面的头和尾部,这样设计新的页面时如果重复出现的局部只需要拿现成的模块来组装就可以了。数据存取技术:数据库是管理信息系统的核心内容。目前,Web与数据库接口技术有很多,其中JDBC是JaVa程序连接和存取数据库的应用程序接口,由一组用JaVa语言编写的类与接口组成,是执行SQL语句的JaVaAPL在本管理信息系统中
13、,采用了JSP/Servlet+JDBC的技术,即客户端不产生数据库查询命令,客户端上的浏览器通过URL和中间层的Web服务器建设连接。Web服务器主要负责接收本地或远程浏览器的数据请求,然后中间层的Servlet收到请求后,通过执行程序中的SQL语句,利用JDBC提供的标准API对数据库进展访问和相应的操作处理。SerVlet再将查询的数据传给JSP,最后生成标准的JSP页面将结果返回给提出请求的浏览器。这样,不仅将客户端与数据库服务器端分开,同时提高了数据库的访问效率。3.2系统设计的体系和构造3.2.1系统的设计体系目前,在大多数BrOWSer/Server构造的Web应用中,浏览器直接
14、通过HTML或者JSP的形式与用户交互,响应用户的请求。虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。因此,在中间层上采用基于模型视图控制器(MVC.Model-View-Controller)的设计模式。ModeI层用来实现业务逻辑,View层用来显示用户界面,Controller层主要负责View层和Model层之间的控制关系。具体实现时,把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBeans被用来表示模型。在这种设计模式下,各层次之间的数据传递如以以下图:企业在竞争中处于不败地位的有效手段之
15、一。而MIS不仅能够及时全面地提供信息和数据,简化统计工作,对不同的管理层次提出不同的报告之外,还能根据过去的数据预测未来的情况。因此,采用何种方法开发出一种兼顾开发效率和运行效率,同时满足分布式事件处理功能的管理信息系统就显得尤为重要。采用三层架构设计,它的工作原理如图:图3-2:采用三层架构设计的工作原理示意图整个管理信息系统采用Browser/Web/DataBase的三层体系构造。Web服务器承受请求,通过应用程序服务器执行一个Java服务器端小程序Servlet并返回其输出,从而实现与客户机进展信息资源的交互。数据库服务器用来存储管理信息系统中所用到的各种数据,数据由数据库管理程序直
16、接录入。系统的客户端只需要一个浏览器即可。相关人员通过浏览器来查询、增加、修改、删除数据,对信息进展管理。3.3系统的功能和构造框图3.3.1系统功能模块客户端: 用户注册、登录 修改密码管理端: 药品管理:新增、修改、删除、查看 供应商管理:新增、查看、修改、删除 查询供应商提供的药品1. 3.2系统构造框图:药品管理系统3. 4开发平后和开发工其客户端勾,系统I 管理端 干发平台言赢 也是O如上工具:前台页面/述,系统构呈采用 Jsservlet + Javabeans + MySqi ;开发目用MyEclipst开发,这种工具对JSP的支持比FrontPage好;的首专 据库,4.1用户
17、注册登录修改密码包写和编译虬IQeatOk,先用Ton Manage 第4章,明OV供应商管理螭示符和小巧的内存占用是我 S ySql4.0,为了更好地操作数 微化界面的数据库操作。I的简介JSP即JavaServerPages,在电子商务开发上,还可以选择ASP平台。但比较过两者优劣后才决定选择JSPoJSP和ASP技术明显的不同点:开发人员在对两者各自软件体系设计的深入了解的方式不同。JSP技术基于平台和服务器的互相独立,输入支持来自广泛的,专门的,各种工具包,服务器的组件和数据库产品开发商所提供。相比之下,ASP技术主要依赖微软的技术支持。JSP技术依附于一次写入,之后,可以运行在任何具
18、有符合JaVaTM语法构造的环境。取而代之过去依附于单一平台或开发商,JSP技术能够运行在任何WEB服务器上并且支持来自多家开发商提供的各种各样工具包。这种基于组件的模式很有效提高应用程序的开发效率,因为这种模式能够使开发人员利用快捷的子组件快速创立模板应用程序,然后再整合一些附加功能以后便可使用。像这样有效的方法在JSP中无处不在,并可将其打包成一个JaVabean或一个工业标准化的Javabean组件。终上所述,JSP继承JAVA一贯的跨平台、易维护的特性,是我开发的首选。4.2MySqI的简要说明选择一个好的数据库是开发一个系统的前提,当然用MySql也是与其它数据库比较过的。下面列出M
19、ySqI与其它数据库的全方位比照:安全性:SQLserver没有获得任何安全证书。OracleServer获得最高认证级别的ISo标准认证。DB2获得最高认证级别的ISo标准认证。MySql获得最高认证级别的ISo标准认证。多线程:MySQL是完全多线程化的,每个连接有它自己的线程,这意味着没有线程必须等待另一个线程(除非一个线程正在修改一张表,另外的线程想要存取);而在SQLSerVer中,一旦一个连接被建设了,所有其它线程必须等到第一个线程完成,不管连接正在运行的查询是短的或是长的。联结:如果改变一个SELECT中的表的顺序,SQLSerVer可能变得异常地慢。在基准套件中,比MySQL要
20、慢超过15000倍的时间。这是由于SQLSerVer缺乏一个联结优化器以便用最正确的顺序排定表。Perl接口:MySqI和SQLSeNer有基本一样PerI接口,有一些增加的功能。价格:MySqI的免费成为不可取代的优势。终上所述,MySQL以其极高的性价比成为中小型数据建库的首选,本系统也选用MySqlo4. 3系统配置过程由于JSP架构采用不同公司的软件产品,所以配置的复杂性是肯定的。下面列出其配置详细过程:所需软件:(1) j2sdk-l_4_2-windows-i586.exe(2) jakarta-tomcat-5.0.28.exe(3) mysql-4.0.24-win.zip(m
21、ysql5.0的bate版,不过对其NullPointException出错一直是不能被广泛承受的原因,在本系统下也只能用较为稳定的4.0版本。)(4) MyECIiPSe_6.5Ml.exe(mysql的驱动程序,其中connector采用mysql-connector-java-3.0.8-stable-bin.jar可以正常运行;而在后面一个较新的版本会出现StringOutOfRange错误,用最新的版本又会因为本数据库设计的时间格式已经不支持而不能正常读取,所以版本的选择是非常重要的。)一、安装j2sdk在WindOWS下,直接运行下载的j2sdk-l_4_l_OI-WindOWS-
22、i586.exe文件,根据安装向导安装到一个目录,例如安装到d:serverj2sdko1 .配置环境变量:添加CLASSPATH变量./;%CLASSPATH%;D:serverj2sdkl.4.0libdt.jar;d:serverj2sdkl.4.0libtools.jar;2 .添加JAVA_HOME变量,变量值为d:serverj2sdk1.4.03 .在原来的path变量中,添加d:serverj2sdk1.4.0bin,重新启动二、TOmCat的安装jakarta-tomcat-5.0.28.exe安装文件,设安装目录为d:servertomcato下面设置环境变量:同jdk的环
23、境变量,添加变量TOMCAT_HOME,值为d:servertomcat;增加变量CArALlNA_H0ME,值为d:tomcatserver,在path变量中参加dservertomcatbin。下面启动tomcat,运行tomcat目录下的bin/startup.bat文件就出现tomcat运行控制台,那么tomcat安装成功。三、安装MySQL第一步:解压mysql4.0.24-Win.zip,运行mysql安装文件,把mysql安装到d:servermysql第二步:在环境变量Path中参加d:servermysqlbin第三步:进入d:servermysqlbin目录,运行Winmy
24、SqIadmin,刚会出现对话框,设置mysql用户密码。第四步:进入dos,进入mysql/bin下,运行以下命令翻开mysqlmysqld-nt-standalone,那么mysql开启四、安装MySQL的驱动类jdbc解开jdbc驱动包,把里面的com文件夹复制到jsp相应的位置,可以是tomcat的根目录common/classes文件夹下,也可以是jsp网站class类WEB-INFZclass/下。当加载驱动程序时,以便能找到相关的类,或者把jdbc包的路径参加到classpath变量中。4.4配置关键性问题的解决上述配置正确后,只是可以成功连接,但还有一些需要解决的问题才能正常运
25、行JSP程序。4.4.1Servlet和JSP性能调整1、调整方法1:制止SerVlet和jsp的自动重载为了节约开发时间,在开发阶段Servlet/JSP容器提供自动重载功能,方便在修改Servlet/JSP后不用重新启动服务。可是,在生产环境下面,却是占用大量开销,因为进展了没有必要的重新载入的操作,所以带来了很怀的性能影响。同时,在局部类载入,局部为载入的时候也可能带来各种奇怪的冲突。因此在J2EE的生产环境下关闭自动载入功能可以得到更好的性能。2、调整方法2:控制Session在默认情况下,不要在jsp页面中创立SeSSiOnS对象,jsp页面默认会自动创立Sessions,如果jsp
26、页面中不需要Sessions,为了节省一些性能,使用下面的页面指令防止自动创立SeSSiOnS对象:03、调整方法3:选择正确的包含机制在jsp中有两种方法使用包含文件:包含指令()和包含动作()o包含指令在转换的过程中包含文件内容;也就是说,在一个页面转换成一个servlet的时候。包含动作在请求处理的阶段包含文件内容;也就是说,在一个用户请求页面的时候。包含指令快于包含动作。因此,除非被包含的内容经常变化,应该使用包含指令提升性能。4、调整方法4:选择正确的范围在使用USeBean动作Jsp页面的一个强大功能就是在jsp中交互使用JaVaBeanS组件。通过使用动作标签,JavaBeans
27、可以被直接的嵌入jsp页面中。语法如下:范围属性指定了bean的作用范围。它的默认值是page。可以根据系统要求选择正确的范围。否那么它会影响到应用系统的性能。4.4.2Mysql与JSP网页中文乱码问题以GBK字符集建库建表:用EMS来建mysql的数据库及表,建库时,从EMS菜单中选CreateDatabase.新建一个数据库,CharaCterSet选gbk_bin;后面建表时,也要选择同样的字符集。连接数据库的URL后加参数:假设新建的数据库是testdb,那么连接数据库的Url应该为:jdbc:mysql:/localhost:3306/testdb?useUnicode=true&
28、characterEncoding=gbk每个JSP页面都要声明该中文字符集:在每个JSP页面的最上面都加上一句:,这样才能保证JSP页面中的中文显示正常。上述都是在实际进展JSP页面配置时遇到的问题,JSP配置的复杂性是由于各个版本开发的不一致造成的,在调试页面的同时也是对自己各方面知识水平的极大挑战。第5章系统的详细设计5.1数据库的实现5.1.1 数据库关系模式的设计 药品信息(药品编号,药品数量,药品名称,药品单价,供应商编号) 供应商信息(供应商编号,供应商名字,联系) 供应商药品信息(药品编号,供应商编号) 用户信息(用户编号,用户名,密码)5.1.2 数据库的具体实现表构造药品信
29、息列表:表5-1:药品信息列表SQL语句:CREATETABLEmedicine(idvint(ll)NOTNULL,numvarchar(32)defaultNULL,namevarchar(64)defaultNULL,pricedoubledefaultNULL,vSupplierJdint(ll)defaultNULL,PRIMARYKEY(id)ENGlNE=MyISAMDEFAULTCHARSET=utf8供应商信息列表:表5-2:药品信息列表SQL语句:CREATETABLEsupplier、(idint(ll)NOTNULL,namevarchar(64)defaultNULL
30、,phone、varchar(32)defaultNULL,PRIMARYKEYfids)ENGINE=MylSAMDEFAULTCHARSET=utf8药品供应商信息表:表5-3:药品供应商信息列表SQL语句:CREATETABLEvmedicine-supplier(vmedicine-idint(l1)NOTNULL,xSupplierJdint(ll)NOTNULL,PRIMARYKEYCmedicinejdsupplierJd)ENGINE=MyISAMDEFAULTCHARSET=utf8用户信息表:表5-4:用户信息表SQL语句:CREATETABLEadmin(idvint(l
31、l)NOTNULL,namevarchar(64)defaultNULL,pwdvarchar(64)defaultNULL,PRIMARYKEY(id)ENGINE=MylSAMDEFAULTCHARSET=utf85.2数据库的连接下面首先介绍数据库连接Bean的编写,即UtiLDataBase类,这是一个公共类,其它类如果要连接数据库,只要构造这个类的对象就可以了。附主要代码和注释如下:packagemms.util;/*注释* 数据库连接专用包*Company:medshoponline* by:zhourong* version1.0*/importjava.sql.*;public
32、classDataBasepublicConnectionconn;publicStatementstmt;publicResultSetrs=null;publicStringsqlStr=;publicDataBaseOthis.connect();)publicbooleanconnect()try(注册驱动程序Class.forName(norg.gjt.mm.mysql.Driver).newlnstance();连接字符串,有连接数据库的IP,用户名,密码以及编码格式等Stringurl=,jdbczmysql:/127.0.0.l/MedStore?user=root&useUn
33、icode=true&characterEncoding=gbk;Conn=DriverManagergetConnection(Url);stmt=ConnxreateStatement();catch(Exceptionee)System.out.println(connectdberro亡+ee.getMessage();returnfalse;)returntrue;)publicstaticvoidmain(Stringlargs)tryDataBasedb=newDataBase();db.connect();catch(Exceptione)e.printStackTrace()
34、;)15.3功能模块的详细设计5.3.1 注册功能模块用于实现用户注册功能。functionsub()varu=ValidateUserInfoO;if(u=false)returnfalse;1document.forms0.submit。;1functionvalidateUserInfo()varname=document.getElementById(,name,);if(name.value=,)alert(用户帐号不能为空!”);name.focus();returnfalse;1varpwdl=document.getElementByld(pwd1,);if(pwdl.valu
35、e=)alert(输入密码不能为空!)pwdl.fbcus();returnfalse;)varpwd2=document.getElementById(,pwd2,);if(pwd2.value=,)alert(”确认密码不能为空!)pwd2.focus();returnfalse;1if(pwd1.value!=pwd2.value)alert(两次密码输入不一致!)returnfalse;1)5.3.2 3.2登录功能模块functionsub()varu=ValidateUserInfoO;if(u=false)returnfalse;)document.forms0.submit()
36、;)functionvalidateUserlnfo()varname=document.getElementById(,name);if(name.value=,)alert(用户帐号不能为空!”);name.focus();returnfalse;1varpwd=document.getElementById(,pwd);if(pwd.value=,)alert(输入密码不能为空!,)pwd.fbcus();returnfalse;)5.3.3 添加药品功能模块用于完成对药品的添加。functionsub()varu=validate();if(u=false)returnfalse;1d
37、ocument.forms0.submit();)functionvalidate()varnum=document.getElementByld(,num,);if(num.value=)alert(药品编号不能为空!”)num.focus();returnfalse;)varname=document.getElementById(,name);if(name.value=,)alert(药品名称不能为空!);name.focus();returnfalse;1varprice=document.getElementById(price,);if(price.value=,)alert(”
38、药品价格不能为空!);price.focus();returnfalse;)5.3.4 药品管理功能模块用于实现对药品的管理。functionsub()varu=validate();if(u=false)returnfalse;1document.forms1.submit();)functionvalidate()varnum=document.getElementByld(,num,);if(num.value=,)alert(药品编号不能为空!”)num.focus();returnfalse;)varname=document.getElementById(,name);if(nam
39、e.value=,)alert(药品名称不能为空!);name.focus();returnfalse;1varprice=document.getElementById(price,);if(price.value=,)alert(”药品价格不能为空!);price.fbcus();returnfalse;)functionsup()varcontent=document.getElementById(,content,);if(content.value=1,)alert。喳询内容不能为空!”);content.fbcus();returnfalse;)document.forms0.su
40、bmit();)5.3.5 添加供应商功能模块用于实现对供应商的添加。functionsub()varu=validate();if(u=false)returnfalse;)document.formsOJ.submit();1functionvalidate()varname=document.getElementById(,name,);if(name.value=,)alert(供应商名称不能为空!);name.focus();returnfalse;varphone=document.getElementById(phone);if(phone.value=,)alert(联系不能为
41、空!)phone.fbcus();returnfalse;)5.3.6 供应商管理功能模块用于实现对供应商信息的管理。functionsub()varu=validate();if(u=false)returnfalse;)document.formsl1.submit();1functionvalidate()varname=document.getElementById(,name,);if(name.value=,)alert(供应商名称不能为空!);name.focus();returnfalse;varphone=document.getElementById(,phone,);if
42、(phone.value=,)alert(联系不能为空!”);phone.fbcus();returnfalse;)1functionsup()varcontent=document.getElementById(content,);if(content.value=0)alert(查询内容不能为空!);content.fbcus();returnfalse;)document.forms0.submit。;15. 3.7修改密码功能模块用于实现用户修改密码。functionsub()varu=validate();if(u=false)returnfalse;)document.formsl
43、O.submit();1functionvalidate()varpwdl=document.getElementById(,pwd1,);if(pwdl.value=,)alert(旧密码不能为空!)pwdl.fbcus();returnfalse;varpwd2=document.getElementByld(,pwd2,);if(pwd2.value=)alert(新密码不能为空!”);pwd2.fbcus();returnfalse;)varpwd3=document.getElementById(,pwd3,);if(pwd3.value=,)alert(确认密码不能为空!”);pwd3.focus();returnfalse;1if(pwd2.value!=pwd3.value)alert(两次密码不一致!);pwd3.fbcus();returnfalse;1)5.3.8 查询供应商提供的药品功能模块用于实现用户查询供应商提供的药品情况。-a(text-decoration:none;)