1、摘 要 药物管理系统是当代化在线医药管理必不可少基本设施与技术支撑环境。本系统前台采用MyEclipse开发,后台采用MySql 作为数据库开发工具,这些技术当前相对比较成熟,以便产品维护。本系统可以实现顾客在线注册、登录、修改密码,顾客进行药物添加和管理、供应商添加和管理,还可查询供应商提供药物清单。 JSP(Java Server Pages)是由Sun Micrososystems公司倡导、许多公司参加一起建立一种动态网页技术原则,JSP技术是在Servlet技术基本上发展起来,它在飞速发展过程中,当前已经成为Java服务器编程重要构成某些。虽然它未成型,但是它必然将和J2EE一起
2、发展。 MySql是一种高效关系数据库系统,它与Windows NT/及Windows 9x等操作系统紧密集成。这种安排使MySql能充分运用操作系统所提供特性。对于今天复杂客户/服务器系统来说,MySql是一种较好选取。 核心字:药物管理系统;Java;MySql; Abstract The medical administrative system is the modernized online medicine management system, which is the essential infrastructure and technological
3、 back-up environment. This systematic front desk adopts DreamWeaver development,and the backstage supporter adopts MySql as the database developing instrument. These technologies are relative mature at present,facilitate the maintenance of the products. This system can realize user's online registra
4、tion ,log-in ,revision of personal information ,selection and order of medicines,examination of the detailed information of medicines ,submittal of the order information,maintenance and management of medicines,classification of the medicines ,user’s information and order information online. JSP (Ja
5、va Server Pages ) is advocated by Sun Micrososystems Company,a kind of dynamic webpage technical standard 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
6、the important component of server programming of Java now. Though it does’t shape,it must develop with J2EE. MySql is an efficient relation database system. It is close integrated with Windows /NT and Windows 9X OS. MySql can utilize fully the characteristics provided by OS .MySql is a good choice
7、for the complicated Cilent/Server systems nowaday. Key Word:Medical Administrative System;JSP;MySql 目 录 摘 要 1 ABSTRACT 2 目 录 3 第1章 开发目和意义 4 第2章 需求分析 4 2.1 系统工作流程分析 4 2.2 系统实现目的 4 第3章 总体设计 5 3.1 系统设计总体思想 5 3.2 系统设计体系和构造 5 3.2.1 系统设计体系 5 3.2.2 系统构造架构 6 3.3 系
8、统功能和构造框图 6 3.3.1 系统功能模块 6 3.3.2 系统构造框图: 7 3.4 开发平台和开发工具 7 第4章 开发平台和工具简介 7 4.1 JSP简要阐明 7 4.2 MySql简要阐明 8 4.3 系统配备过程 8 4.4 配备核心性问题解决 9 4.4.1 Servlet和JSP 性能调节 10 4.4.2 Mysql与JSP网页中文乱码问题 10 第5章 系统详细设计 10 5.1 数据库实现 11 5.1.1 数据库关系模式设计 11 5.1.2 数据库详细实现(表构
9、造) 11 5.2 数据库连接 12 5.3 功能模块详细设计 13 5.3.1 注册功能模块 13 5.3.2 登录功能模块 14 5.3.3 添加药物功能模块 15 5.3.4 药物管理功能模块 16 5.3.5 添加供应商功能模块 17 5.3.6 供应商管理功能模块 18 5.3.7 修改密码功能模块 20 5.3.8 查询供应商提供药物功能模块 21 5.3.9 主界面 23 第6章 总 结 24 致 谢 25 参照文献 26 第1章 开发目和意义 开发软件一种目是针对当前普遍药物管理系统存
10、在功能不全,操作复杂,系统规定高等一系列问题。该管理系统采用电子商务设计模式,可靠,以便,并且功能齐全。固然对该软件态度是渴望获得明显社会效益。 开发软件另一种目是使其具备强大实用价值,即它可以满足中小型医药公司管理需要。随着小型医药公司规模扩大,手工工作已经不能满足业务上需求。而该药物管理系统实行,能集中解决药物进销存业务,管理好公司应收应付账目,为公司调节发展创造一种新条件。 随着国内市场经济蓬勃发展和人们对医药产品需求迅速增长,医药行业正处在一种高速发展时期。行业迅速发展必然导致竞争加剧,要想在激烈市场竞争中谋求发展,客观上规定公司必要加强内部管理,提高运营效率。 此外,由于医药产
11、品种类繁多、销售模式特殊、业务最大,单凭手工记帐已很难适应工作需要。医药作为一种关系到人们健康特殊行业,国家对此又有某些不同于其她行业管理政策,这些都加大了管理难度。 如何尽快建立和完善当代公司信息化管理机制问题,已成为医药公司发展核心所在。而以便、安全、快捷医药管理软件系统正是在这样背景下发展起来。 这种管理软件对硬件规定很低,普通有一种比较简朴服务器与PC机构成网络即可,再加上使用比较便宜、性能不错软件,这样就可以以较低成本来实现一种足够使用功能,而这种模式也正满足了那种中小型医药公司规定。但是当前对这种管理软件开发还处在一种比较原始阶段。开发者往往都是出于资金和时间顾虑使用比
12、较陈旧技术,并且各为己见,并且很少涉及网络。可是当今是一种网络化社会,单机版管理软件多如牛毛,去开发一种类似软件无疑是一种在时间上、精神上和资源上极大挥霍。所觉得这种有需要中小型公司开发一种基于网络医药管理软件是非常有实用价值。 第2章 需求分析 2.1 系统工作流程分析 老式医药管理模式是手工记帐,但由于当前医药产品种类繁多、销售模式特殊、业务量大,单凭手工记帐已经很难适应工作需要。依照当前医药公司实际需求,系统应实现详细功能如下: 一方面是客户界面,客户可以通过网络进行注册认证,然后可以通过身份登录后进行药物添加和管理,供应商添加和管理,查询供应商提供药物。 另一方
13、面是管理界面,管理员登录后可以对药物信息进行增长和删除操作,可以对供应商信息进行添加、删除操作,可以对客户信息进行有关维护等等。 2.2 系统实现目的 (1) 系统界面和谐,操作简朴 (2) 可随时掌握药物进销存信息 (3) 查询灵活以便,数据安全可靠 (4) 从顾客需求到售后服务,形成一套严密、科学、完善管理体系 (5) 功能全面,实用性强 第3章 总体设计 3.1 系统设计总体思想 页面模块化: 把页面中某些惯用某些集成为模块,例如页面头和尾部,这样设计新页面时如果重复浮现某些只需要拿现成模块来组装就可以了。 数据存取技术: 数据库是管理
14、信息系统核心内容。当前,Web与数据库接口技术有诸多,其中JDBC是Java程序连接和存取数据库应用程序接口,由一组用Java语言编写类与接口构成,是执行SQL语句Java API。在本管理信息系统中,采用了 JSP/Servlet+JDBC技术,即客户端不产生数据库查询命令,客户端上浏览器通过URL和中间层Web服务器建立连接。Web服务器重要负责接受本地或远程浏览器HTTP数据祈求,然后中间层Servlet收到祈求后,通过执行程序中SQL语句,运用JDBC提供原则API对数据库进行访问和相应操作解决。Servlet再将查询数据传给JSP,最后生成原则JSP页面将成果返回给提出祈求浏览器。这
15、样,不但将客户端与数据库服务器端分开,同步提高了数据库访问效率。 3.2 系统设计体系和构造 3.2.1 系统设计体系 当前,在大多数Browser/Server构造Web应用中,浏览器直接通过HTML或者JSP形式与顾客交互,响应顾客祈求。虽然很直观,但是大多数管理信息系统操作数据量都是惊人,随着代码增多会使JSP页面臃肿不堪,Web服务器负荷过重。因而,在中间层上采用基于模型视图控制器(MVC.Model-View-Controller)设计模式。Model层用来实现业务逻辑,View层用来显示顾客界面,Controller层重要负责View层和Model层之间控制关系。详细
16、实现时,把Servlet用作应用程序控制器,把JSP文档作为视图,JavaBeans被用来表达模型。在这种设计模式下,各层次之间数据传递如下图: Controller (Servlet) View (JSP) Model (JavaBeans) DataBase HTTP祈求 获取数据 转交 祈求 文档输出 更新模型 图3-1:各层次之间数据传递示意图 3.2.2 系统构造架构 管理信息系统(MIS)是一种由人、计算机等构成能进行信息收集、传递、存储、加工和
17、使用系统。随着科技发展,信息膨胀,公司信息化成了公司在竞争中处在不败地位有效手段之一。而MIS不但可以及时全面地提供信息和数据,简化记录工作,对不同管理层次提出不同报告之外,还能依照过去数据预测将来状况。因而,采用何种办法开发出一种兼顾开发效率和运营效率,同步满足分布式事件解决功能管理信息系统就显得尤为重要。 采用三层架构设计,它工作原理如图: 客户机 浏览器 http服务器 应用程序服务器 Servlet容器 数据库 JDBC servlet jsp 图3-2:采用三层架构设计工作原理示意图 整个管理信息系统采用Browse
18、r/Web/DataBase三层体系构造。Web服务器接受祈求,通过应用程序服务器执行一种Java服务器端小程序Servlet并返回其输出,从而实现与客户机进行信息资源交互。数据库服务器用来存储管理信息系统中所用到各种数据,数据由数据库管理程序直接录入。系统客户端只需要一种浏览器即可。有关人员通过浏览器来查询、增长、修改、删除数据,对信息进行管理。 3.3 系统功能和构造框图 3.3.1 系统功能模块 客户端: l 顾客注册、登录 l 修改密码 管理端: l 药物管理:新增、修改、删除、查看 l 供应商管理:新增、查看、修改、删除 l 查询供应商提供药物 3.3.2 系统构
19、造框图: 药物管理系统 客户端 管理端 数据库 顾客注册登录 修改密码 查询供应商提供药物 供应商管理 药物管理 图3-3:全局构造示意图 3.4 开发平台和开发工具 由于采用JSP架构,系统功能加强,但其开发平台和开发工具选取也是非常复杂。如上所述,系统构造采用Jsp/servlet + Javabeans + MySql;详细开发工具:前台页面使用MyEclipse开发,这种工具对JSP支持比FrontPage好;对于组件Bean编写和编译用JCreator,以便提示符和小巧内存占用是我
20、一方面;Jsp服务器选用TomCat6.0,后台数据库MySql4.0,为了更好地操作数据库,使用EMS Sql Manager 3.0进行windows图形化界面数据库操作。 第4章 开发平台和工具简介 4.1 JSP简要阐明 JSP即Java Server Pages,在电子商务开发上,还可以选取ASP平台。但比较过两者优劣后才决定选取JSP。 JSP和ASP技术明显不同点:开发人员在对两者各自软件体系设计进一步理解方式不同。JSP技术基于平台和服务器互相独立,输入支持来自广泛,专门,各种工具包,服务器组件和数据库产品开发商所提供。相比之下,ASP技术重要依赖微软技术支持
21、 JSP技术依附于一次写入,之后,可以运营在任何具备符合JavaTM语法构造环境。取而代之过去依附于单一平台或开发商,JSP技术可以运营在任何WEB服务器上并且支持来自多家开发商提供各种各样工具包。 这种基于组件模式很有效提高应用程序开发效率,由于这种模式可以使开发人员运用快捷子组件迅速创立模板应用程序,然后再整合某些附加功能后来便可使用。像这样有效办法在JSP中无处不在,并可将其打包成一种Javabean或一种工业原则化Javabean组件。 终上所述,JSP继承JAVA一贯跨平台、易维护特性,是我开发首选。 4.2 MySql简要阐明 选取一种好数据库是开
22、发一种系统前提,固然用MySql也是与其他数据库比较过。下面列出MySql与其他数据库全方位对比: 安全性: SQL server 没有获得任何安全证书。 Oracle Server 获得最高认证级别ISO原则认证。 DB2 获得最高认证级别ISO原则认证。 MySql 获得最高认证级别ISO原则认证。 多线程: MySQL是完全多线程化,每个连接有它自己线程,这意味着没有线程必要等待另一种线程(除非一种线程正在修改一张表,此外线程想要存取);而在SQL ser
23、ver中,一旦一种连接被建立了,所有其他线程必要等到第一种线程完毕,不论连接正在运营查询是短或是长。 联结: 如果变化一种SELECT中表顺序,SQL Server也许变得异常地慢。在基准套件中,比MySQL要慢超过15000倍时间。这是由于SQL Server缺少一种联结优化器以便用最佳顺序排定表。 Perl接口: MySql和SQL Server有基本相似Perl接口,有某些增长功能。 价格: MySql免费成为不可取代优势。 终上所述,MySQL以其极高性价比成为中小型数据建库首选,本系统也选用MySql。 4.3 系统配备过程
24、 由于JSP架构采用不同公司软件产品,因此配备复杂性是必定。下面列出其配备详细过程: 所需软件: (1) j2sdk-1_4_2-windows-i586.exe (2) jakarta-tomcat-5.0.28.exe (3) mysql-4.0.24-win.zip (mysql有5.0bate版,但是对其NullPointException出错始终是不能被广泛接受因素,在本系统下也只能用较为稳定4.0版本。) (4) MyEclipse_6.5M1.exe (mysql驱动程序,其中connector采用mysql-connector-java-3.0.8-stab
25、le-bin.jar可以正常运营;而在背面一种较新版本会浮现StringOutOfRange错误,用最新版本又会由于本数据库设计时间格式已经不支持而不能正常读取,因此版本选取是非常重要。) 一、 安装j2sdk 在Windows下,直接运营下载j2sdk-1_4_1_01-windows-i586.exe文献,依照安装向导安装到一种目录,例如安装到d:\server\j2sdk。 1. 配备环境变量: 添加CLASSPATH变量 ./;%CLASSPATH%;D:\server\j2sdk1.4.0\lib\dt.jar;d:\server\j2sdk1.4.0\lib\tools.
26、jar; 2. 添加JAVA_HOME变量,变量值为d:\server\j2sdk1.4.0 3. 在本来path变量中,添加d:\server\j2sdk1.4.0\bin,重新启动 二、 Tomcat安装 jakarta-tomcat-5.0.28.exe安装文献,设安装目录为d:\server\tomcat。 下面设立环境变量: 同jdk环境变量,添加变量TOMCAT_HOME,值为d:\server\tomcat;增长变量CATALINA_HOME,值为d:\tomcat\server,在path变量中加入d:\server\tomcat\bin。 下面启动tomcat,
27、运营tomcat目录下bin/startup.bat文献就浮现tomcat运营控制台,则tomcat安装成功。 三、 安装MySQL 第一步:解压mysql-4.0.24-win.zip,运营mysql安装文献,把mysql安装到d:\server\mysql 第二步:在环境变量path中加入 d:\server\mysql\bin 第三步:进入d:\server\mysql\bin目录,运营winmysqladmin,刚会浮现对话框,设立mysql顾客密码。 第四步:进入dos,进入mysql/bin下,运营如下命令打开mysql mysqld-nt –standalone,则m
28、ysql启动 四、 安装MySQL驱动类jdbc 解开jdbc驱动包,把里面com文献夹复制到jsp相应位置,可以是tomcat根目录common/classes文献夹下,也可以是jsp网站class类WEB-INF/class/下。当加载驱动程序时,以便能找到有关类,或者把jdbc包途径加入到classpath变量中。 4.4 配备核心性问题解决 上述配备对的后,只是可以成功连接,但尚有某些需要解决问题才干正常运营JSP程序。 4.4.1 Servlet和JSP 性能调节 1、调节办法1:禁止servlet和jsp自动重载 为了节约开发时间,在开发阶段Serv
29、let/JSP容器提供自动重载功能,以便在修改Servlet/JSP后不用重新启动服务。可是,在生产环境下面,却是占用大量开销,由于进行了没有必要重新载入操作,因此带来了很怀性能影响。同步,在某些类载入,某些为载入时候也也许带来各种奇怪冲突。因而在J2EE生产环境下关闭自动载入功能可以得到更好性能。 2、 调节办法2:控制HttpSession 在默认状况下,不要在jsp页面中创立HttpSessions对象,jsp页面默认会自动创立HttpSessions,如果jsp页面中不需要HttpSessions,为了节约某些性能,使用下面页面指令避免自动创立HttpSessions对象: <
30、@ page session="false"%>。
3、调节办法3:选取对的包括机制
在jsp中有两种办法使用包括文献:包括指令(<%@ include file="test.jsp" %>) 和包括动作 (
31、范畴在使用useBean动作
Jsp页面一种强大功能就是在jsp中交互使用JavaBeans组件。通过使用
32、Mysql与JSP网页中文乱码问题 以GBK字符集建库建表: 用EMS来建mysql数据库及表,建库时,从EMS菜单中选create Database...新建一种数据库,CharacterSet选gbk_bin;背面建表时,也要选取同样字符集。 连接数据库URL后加参数: 假设新建数据库是testdb,那么连接数据库url应当为: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=gbk 每个JSP页面都要声明该中文字符集: 在每个JSP页面最上
33、面都加上一句: <%@ page language="java" contentType="text/html;charset=GBK" %> ,这样才干保证JSP页面中中文显示正常。 上述都是在实际进行JSP页面配备时遇到问题,JSP配备复杂性是由于各个版本开发不一致导致,在调试页面同步也是对自己各方面知识水平极大挑战。 第5章 系统详细设计 5.1 数据库实现 5.1.1 数据库关系模式设计 l 药物信息(药物编号,药物数量,药物名称,药物单价,供应商编号) l 供应商信息(供应商编号,供应商名字,联系电话) l 供应商_药物信息(药物编号,供应商编
34、号) l 顾客信息(顾客编号,顾客名,密码) 5.1.2 数据库详细实现(表构造) 药物信息列表: 表5-1:药物信息列表 SQL语句: CREATE TABLE `medicine` ( `id` int(11) NOT NULL, `num` varchar(32) default NULL, `name` varchar(64) default NULL, `price` double default NULL, `supplier_id` int(11) default NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT
35、CHARSET=utf8 供应商信息列表: 表5-2:药物信息列表 SQL语句: CREATE TABLE `supplier` ( `id` int(11) NOT NULL, `name` varchar(64) default NULL, `phone` varchar(32) default NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 药物_供应商信息表: 表5-3:药物_供应商信息列表 SQL语句: CREATE TABLE `medicine_supplier` ( `med
36、icine_id` int(11) NOT NULL, `supplier_id` int(11) NOT NULL, PRIMARY KEY (`medicine_id`,`supplier_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 顾客信息表: 表5-4:顾客信息表 SQL语句: CREATE TABLE `admin` ( `id` int(11) NOT NULL, `name` varchar(64) default NULL, `pwd` varchar(64) default NULL, PRIMARY KEY (
37、`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 5.2 数据库连接 下面一方面简介数据库连接Bean编写,即util.DataBase类,这是一种公共类,其他类如果要连接数据库,只要构造这个类对象就可以了。附重要代码和注释如下: package mms.util; /**注释 *数据库连接专用包 *Company:med shop online * @by :zhourong * @version 1.0 */ import java.sql.*; public class DataBase { public C
38、onnection conn; public Statement stmt; public ResultSet rs=null; public String sqlStr=""; public DataBase() { this.connect(); } public boolean connect(){ try{ //注册驱动程序 Class.forName("org.gjt.mm.mysql.Driver").newInstance(); //连接字符串,有连接数据库IP,顾客名,密码以及编码格式等
39、 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
40、false; } return true; } public static void main(String[] args) { try{ DataBase db = new DataBase(); db.connect(); }catch(Exception e){ e.printStackTrace(); } } } 5.3 功能模块详细设计 5.3.1 注册功能模块 用于实现顾客注册
41、功能。 5.3.2 登录功能模块 5.3.3 添加药物功能模块 用于完毕对药物添加。 5.3.4 药物管理功能模块 用于实现对药物管理。 5.3.5 添加供应商功能模块 用于实现对供应商添加。