当前位置:文档之家› 推荐-java的医药管理系统的设计与实现 精品

推荐-java的医药管理系统的设计与实现 精品

推荐-java的医药管理系统的设计与实现  精品
推荐-java的医药管理系统的设计与实现  精品

青岛农业大学

毕业(设计)

题目:基于java的医药管理系统的设计与实现姓名:

学院:理学与信息科学学院

专业:

班级:

学号:

指导教师:

20XX 年 6 月10 日

毕业(设计)诚信声明

本人声明:所呈交的毕业(设计)是在导师指导下进行的研究工作及取得的研究成果,中引用他人的文献、数据、图表、资料均已作明确标注,中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得青岛农业大学或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在中作了明确的说明并表示了谢意。

(设计)作者签名:日期:年月日毕业(设计)版权使用授权书

本毕业(设计)作者同意学校保留并向国家有关部门或机构送交(设计)的复印件和电子版,允许(设计)被查阅和借阅。本人授权青岛农业大学可以将本毕业(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业(设计)。本人离校后发表或使用该毕业(设计)或与该(设计)直接相关的学术或成果时,单位署名为青岛农业大学。

(设计)作者签名:日期:年月日指导教师签名:日期:年月日

目录

基于java的医药管理系统的设计与实现

摘要:java作为一种计算机语言,经过几十年的磨练和完善,有着相当乐观的优越性。与其他计算机语言一样,都提供了可移植性和垃圾回收原理,但与之不同的是,java不仅具有这些特点,同时还具有网络连接、数据库存储和绘图功能,集多种优点于一身。正是由于java的这些优点,所以本主要讲述的是以java 语言为核心,采用mySql数据库储存数据,运用Hibernate和Struts框架的医药管理系统的设计及应用。此系统流程相对清晰,功能上主要完成对医学药品的管理,其中包括药品以及类别的增删改查,药品库存量的修改,同时也实现了对系统管理员的增删操作。通过后期系统的不断完善和改造,优化了界面显示,修改了系统漏洞,完成了涉及到的所有操作。

关键词:java技术;mySql数据库;Struts框架;Hibernate框架

Design and Implementation of the medical management system

based on java

Abstract:Java as a kind of puter language, after decades of polish and perfect, has a fairly optimistic superiority. With other puter languages, they provides portability and garbage collection mechanism, but in contrast, Java not only has these characteristics, but also have a network connection, database storage and graphics, bines 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 Hibernate and the Struts framework. Process of the system is relatively clear, the system function mainly pletes 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 operation. Through the system constantly improves and reforms finally, optimizing the interface display, changing the system vulnerabilities, pleting all operations involved.

Keywords: Java technology; MySQL database;

Struts framework;Hibernate framework

绪论

伴随着科技时代的不断进步,网络技术在人们的日常生活中的重要性不断提升。由于高科技的飞速发展,人们的日常生活习惯也在发生变化,特别是计算机的大量普及,加快了人们生活节凑的步伐。目前,中国的科技正处在初级阶段,很多技术还不太成熟和完善,如何能在短时间内提高工作效率是人们首先考虑的问题。

针对我国医药管理这方面来说,传统的管理方式相对繁琐,操作复杂,没有科学、完善的方法,不仅耗时而且还浪费人力物力。相对于其他国家而言,针对医药方面的管理研发已有几十年的经验了,体系比较完善。其中也有一些比较著名的系统,例如:退伍军人管理局的DHCP系统、美国犹他州的LDS医院药品的HELP系统和麻省总医院药品的COSTAR系统。从医药管理系统发展趋势来看,由原来的小型化正逐步演化成智能化,又会在一定程度上向集成化转变[1]。

医药管理系统的主要目标是提高工作效率,减轻医院劳动人员的工作强度,降低在医院药品管理上的资金投入,从而获得更好的社会效益。

医药管理系统的主要特点是占用的系统资源较少,所需的计算机技术相对简单,便于操作。主要处理文字和数字数据为主,易于实现。

本文主要阐述了依据java技术实现的医药管理系统,运用目前比较流行的Struts框架技术处理逻辑关系。采用Mysql数据库技术以表的形式储存数据,运用Hibernate技术对数据库中数据进行相关操作,并对数据库的创建和设计以及Hibernate技术的配置做了详细的描述[2]。

1系统分析

1.1需求分析

在当今社会飞速发展的时代,各行各业都在面对着大量的数据信息,医院也不例外,对医药的进销存管理也构成了医院各项管理中比较重要的一部分。面对着每日大量药品的输入和输出,以及众多拥有不同需求的客户,如果采用传统的、非智能化的手工方式来处理所带来的这些数据信息,不仅效率提高不上去,而且还会动用大量的人力物力,增加了医院的开销和资金投入,但却得不到较大的利益。

如何解决以上这些问题,那就需要一个比较成熟的、科学的方法。所以,一个完善的医药管理系统不仅可以带来管理人员对药品的快速管理,而且还能在一定程度上也满足了消费者的需求。它应具有以下优点[3]:

(1)操作界面更加人性化,处理上更加高效。

(2)采用高端的软件技术研发和较长的使用寿命。

(3)可简化工作人员的操作,从而提高工作效率。

1.2可行性分析

任何一款软件研发出来,并不是凭空捏造,它应具有社会效益以及可行性。针对医药管理系统来说,它应具有以下可行性[4]:

经济方面:从经济的角度进行评估,该系统的创建和日后的维护,不会耗费大量的资金。不仅如此,该系统设计理念就是节省人力,完善管理水平,提高管理质量,屏蔽管理漏洞,因而此系统所带来的社会经济效益将远远大于开发中的投入。

技术方面:从技术的角度进行评估,该系统依托于java技术。该语言通熟易懂,技术上可实现跨平台。与此同时,采用Struts和Hibernate框架,分别完成逻辑操作和数据操作,运行效率高,处理速度快[5]。通过大量的开发实践证明,这些技术相当完善,适于此系统的开发。

实施方面:从实施的角度进行评估,该系统对硬件配置要求不高,部署又相对简单,操作起来难度不大,普通操作人员很容易应用此系统,不必接受过多的专业知识的培训。

2系统设计

2.1系统开发环境及目标

(1)系统开发环境

不同的开发环境,将在一定程度上影响到系统的正常运行。所以有必要给出该系统的开发环境,避免出现不必要的麻烦。运行环境选择如下[6]:开发环境:Window7操作系统

开发工具:MyEclipse9.0开发软件

Web服务器:apache-tomcat-6.0.36容器

(2)系统目标

针对当前医院管理的要求,以及从用户体验的角度出发,该系统的制定应具备以下目标[7]:

①系统安全系数高,运行相对稳定。

②界面简单但不失美观,操作方便快捷。

③完成药品基础信息和用户账号的管理。

④能及时的预知药品的销售状况及库存信息。

2.2系统功能结构

通过查阅相关书籍和上网搜索资料,从医院管理状况出发,将该管理系统定义为四大功能模块,它们分别是主系统管理、基本信息管理、药品销售管理和进货与需求管理[8],其系统的主要功能结构图如图2-1所示。

图2-1 功能结构图

2.3系统流程图

所谓流程图,就是以一种特定的图形符号加上必要的说明来解释某一个工艺过程或管理过程。为了能更直观的说明该系统的管理功能,快速地掌握和了解系统的处理任务,所以,给出该系统各个功能模块的流程图,主流程如图2-2所示。

图2-2 系统主流程图

以下给出了各个功能模块的流程图,如图2-3所示。

图2-3 各功能模块流程图

2.4逻辑分层结构设计

在分析该结构设计的之前,首先有必要了解一下MVC框架的设计思想。MVC主要包括三层结构,及M层、V层和C层。M层是模型层,也就是数据层,其中包括持久层和数据库层,用于对数据的储存和操作,主要涉及到的技术有JDBC技术和Hibernate框架技术;V层是视图层,是用来显示软件页面,接受用户请求和以某种形式呈现数据,注重数据的显示效果,主要涉及到的技术有技术和Jsp技术,还有Javascript及相应脚本框架;C层是控制层,是用来对M层和V层的耦合,主要起到逻辑处理作用,捕获用户的请求,并对用户请求进行处理,将所得到的处理结果返回给视图层,并在页面中显示数据[9]。

MVC架构的请求流程:用户访问Web页面,发送请求,请求到达控制器处理,控制器通过DAO技术访问数据层,将数据取出并将处理结果反馈给用户,更新用户界面。

通过以上功能结构的介绍及对MVC框架的了解,可发现该系统是由4层组成,并且严格遵循了MVC架构思想。该4层分别是视图层、控制层、持久层和数据库层。

视图层也就是用户所能涉及到的操作界面,主要采用JSP技术实现,整个页

面可添加Struts框架当中的标签库或jstl标签库。控制层的作用就是协调视图层和数据层,起到中间桥梁的作用,主要采用Struts框架技术实现,通过servlet 组件过滤请求,调用相应的Action组件处理请求,通过forwrad对象将结果输出到界面。数据库层用来储存数据,本系统采用Mysql数据库来实现。持久层是用来操纵数据的,采用Hibernate技术将数据从数据库中提取出来,并做相应的操作,如对数据的增删查改。

2.5文件夹组织结构

本系统主要运用MyEclipse软件编程,采用java技术实现。所以,对于文件夹的命名应该按照规范的命名法来实施。在真实的企业开发过程中,编写代码之前,都要系统的制定好一个比较完善的文件夹组织结构,使得整个项目开发思路比较清晰,让编程人员能很快地定位到每一个模块的设计。开发中,文件夹命名的规范化发挥着十分重要的作用。在MyEclipse软件中,该系统的文件夹组织结构如下所示[10]:

src目录:是一种可执行文件夹,可存放类包,类包中存放源代码文件,即后缀为java格式的文件。

.peng.pojo包:每一层都是文件夹,采用将域名倒写的方式定义包名。该文件下存放实体类,也就是java中常说的pojo类。

.peng.mapping包:用于存放实体关系映射文件(ORM文件),将实体类通过该配置文件和数据库中的表一一对应起来,找到它们之间的联系。

.peng.util包:存放自己编写好的工具类,该工具类可以在不同的包中重复使用,起到某些相应的功能,如给密码加密或者读取某文件内容。

.peng.action包:存放业务处理的类,即Action组件。

.peng.interceptor包:用于存放interceptor拦截器,主要作用是对用户请求进行再次拦截,执行时机是在Action组件之前执行。

.peng.config包:用于存放配置文件,如后缀为properties的文件。可通过java 中IO流进行读取文件内容。

.peng.service包:用于存放一些服务类,常和dao类联合使用。

WebRoot目录:是不可执行的文件夹,用于储存jsp页面,即浏览网页。

3数据库设计

3.1数据库分析

数据库,顾名思义就是一个大型仓库,用来存储大量的数据。它包含所有涉及到的信息,主要囊括用户信息、药品基本信息和类别信息、以及销售明细信息。通过某种对应关系,间接的将所有信息数据联系起来。

在真实的企业开发中,数据库往往单独安装在某个特定的服务器上。这样做的目的就是防止大量用户过度频繁的访问数据库,从而造成服务器的瘫痪。不仅如此,这样做还可以提高查询速度,降低服务器的负担。因此,不同的硬件要求,可能会影响到数据库的性能,以下给出了数据库运行环境的要求:

(1)硬件要求:

CPU:要求在2.8GHz以上。

内存:要求在2GB以上。

硬盘储存空间:150GB或者更高。

(2)软件要求:

操作系统:Windows 7操作系统。

数据库版本:MySQL5.0版本。

3.2数据库设计

通过以上对该系统的功能结构的分析,将每一个模块所涉及到的信息抽象成一个数据实体对象,将这些对象通过数据表的形式储存在数据库中。为了能更好的对数据库中的结构,下面简单介绍一下数据库的相关知识。

数据库中的数据类型主要包括整型(int)、浮点型(double)、字符型(varchar)、日期类型(datetime)。定义类型时含有数字,说明是数据的精确度或字符的长度。

数据库中的约束条件是用来给数据表中的某些列添加限制,主要包括有五种,分别为主键约束(Primary key)、外键约束(Foreign key)、唯一约束(Unique)、非空约束(not null)和检查约束(Check)[11]。前三种是最为常用的约束条件,它们各自的简写分别为PRI、MUL和UNI,作用如下:

①主键约束:主键是用来区分一个数据表中的每一行数据,主键的特点是唯一

性和不能为空值,因而不同的行具有不同的主键。主键的生成方式往往采用

数据库自增的方式auto_increment,随数据的添加自增序列号。

②外键约束:外键是定义在两张表的不同列或同一张表中的不同列,用于联系

两个列之间的关系,起到关联作用,保证数据的一致性,往往将一张表的主键作为另一张表的外键。含有外键的表是主表,不含外键的表是子表。

③唯一约束:此约束是说明该列的每一个数值都是唯一的,不能重复。定义唯

一约束的主要目的是,在没有主键所定义的其他列中不能重复输入相同列值。

以下给出了几种实体对象的表结构:

(1)用户对象所对应的表结构,如表3-1所示:

表3-1 用户对象数据表

属性数据类型是否可为空键值默认值额外信息

id int(11) NO PRI NULL auto_increment username varchar(50) NO UNI NULL

password varchar(50) NO NULL

create_time datetime YES NULL

(2)药品对象所对应的表结构,如表3-2所示:

表3-2 药品对象数据表

属性数据类型是否可为空键值默认值额外信息

id int(11) NO PRI NULL auto_increment med_no varchar(100) NO UNI NULL

name varchar(100) NO NULL

factory_add varchar(100) YES NULL

description text YES NULL

price double NO NULL

med_count int(11) YES NULL

req_count int(11) YES NULL

photo_path varchar(255) YES NULL

category_id int(11) YES MUL NULL

(3)销售明细对象所对应的表结构,如表3-3所示:

表3-3 销售明细对象数据表

属性数据类型是否可为空键值默认值额外信息

id int(11) NO PRI NULL auto_increment sell_name varchar(200) NO NULL

sell_price double NO NULL

sell_count int(11) NO NULL

sell_time datatime NO NULL

med_id int(11) YES MUL NULL

user_id int(11) YES MUL NULL

(4)药品类别对象所对应的表结构,如表3-4所示:

表3-4 药品类别对象数据表

属性数据类型是否可为空键值默认值额外信息

id int(11) NO PRI NULL auto_increment name varchar(100) NO NULL

description text YES NULL

create_time datetime YES NULL

在数据库中创建以上各表的时候,应该明确定义以上每个字段,缺少其中的某个字段都有可能提示创建失败等信息。同时,应注意数据的类型和精确度,以及约束条件和附加信息。

3.3数据库创建

利用SQL语言(结构化查询语言)将所需的数据库和数据表以语言脚本的形式生成,在MySQL软件客户端的命令行界面输入指令即可完成创建过程。如:在E盘下创建了一个“E:\medicine.sql”的数据库脚本,在命令行界面执行指令“source E:\medicine.sql”后,即可完成创建过程。另外一种创建方式,可将SQL脚本添加到MyEclipes软件的项目中,通过软件自带的“数据库连接插件”完成数据库的创建,一般不采用这种形式。

4配置文件

4.1配置web.xml文件

web.xml文件又叫做部署描述文件,它的主要作用就是初始化配置信息。在该文件中可定义过滤器对请求过滤;可定义监听器对事件进行监听;也可定义servlet组件实现逻辑处理等等一些信息[12]。此文件的具体作用如下:

(1)可以定义某个首选页面:

index.jsp

当你访问某个网站的时候,首次浏览到的页面就是index.jsp页面。

(2)为Struts组件Servlet命名:

action

org.apache.struts.action.ActionServlet

这里由Struts框架的底层原理来实现,该组件由Struts框架提供的jar包中的类ActionServlet来完成,命名为action。

(3)为servlet定制统一资源定位器(URL):

action

*.do

“/*”代表对所有的请求字符串进行过滤, “*.do”代表对请求以“.do”结尾的请求过滤。通过servlet的名字找到以上命名之后的组件,例如:通过action 名字找到ActionServlet类。

4.2配置struts-config.xml文件

struts-config.xml文件是Struts框架的核心配置文件。通过该文件中的配置信息,可调用与请求资源相对应的Action组件,并返回所需的执行结果,实现页面的跳转。由于struts-config.xml文件当中的配置相对较多,所以不再一一列举其中的配置信息,只对其中最为常用的重点标签和属性做详细介绍,如下:(1)标签:该标签的作用是用来配置web应用所需的数据源,最多

含有一个,该标签中可定义多个子标签

(2)标签:该标签的作用是用来定义具体的数据源。可以有任意个,

含有两个重要属性key和type,key的作用是区分不同的数据源,type的作用是为数据源的使用提供实现类,如连接池、JDBC技术的类库。

(3)标签:该标签作用在下,主要作用是设置数据源

的属性,如数据源用户、数据源密码和数据源url等等。

(4)标签:该标签的作用是用来配置From Bean的,From Bean实

际上就是一个java Bean,是对表单的封装,struts会通过setter方法将表单中输入框的值设置到From Bean中同名的属性上。含有两个重要的属性name 和type,分别用来定义From Bean的名字和实现类。

(5)标签:该标签的主要作用是用来定义全局的forward的,所

谓的forward就是实现页面的跳转,即分发页面的作用。

(6)标签:该标签的作用是用来定义Action组件的。在配置文

件中最多含有一个,其中可含有多个子标签

(7)标签:该标签含有path、type和name三个重要属性。path的作用

是用来指定访问的路径,以“/”开头;type用来指定处理逻辑的Action组件;name是用来指明与之关联的From Bean的名字。

(8)标签:该标签定义在标签中,作用就是实现页面的跳转。

含有name和path属性,作用分别为接受处理结果和指定要跳转的页面。4.3配置hibernate.cfg.xml文件

hibernate.cfg.xml文件是Hibernate框架中的核心配置文件,用于连接数据库,文件内容一般采用工具自动生成。该配置文件中一般提供如下信息:

(1)标签:提供session工厂,用于生产session对象,需要通过

property标签注入数据源信息。

(2)标签:定义数据库的连接信息,如driver_class、url、username、

password和dialect。dialect叫做方言,Hibernate框架可以通过dialect属性匹配任意类型的数据库,如Oracle、Mysql或者DB2等数据库。

(3)标签:该标签的作用是加载ORM映射文件,以便通过映射文件

将java中的实体类和数据库中的数据表对应起来。

5系统模块设计

5.1主系统管理模块

主系统管理模块主要包括管理员账号管理和系统初始化,如果细分的话,可分为添加和删除管理员,修改管理员密码和查看所有管理员。

由于业务需求,任何管理员登录成功后,都可以进行添加和删除管理员的操作,所以操作时请谨慎操作,以免造成不必要的麻烦。修改管理员密码时,只能对当前用户密码做更改,不可更改其他管理员信息。

前台浏览器端采用到的技术主要包括Jsp页面技术和javaScript技术,后台服务器端采用两大框架处理业务逻辑和数据逻辑。以下给出添加管理员的页面,如图5-1所示。

图5-1 添加管理员

在页面代码中,用户名采用username,密码采用password,这样即可以和java逻辑处理代码中的User类属性相对应,又保证代码信息的一致性,减少开发难度系数。其中,定义用户对象的主要代码如下:

从代码中可以看出,User类含有四个私有属性,并为每个属性提供公有的get和set方法,这样可以通过方法来访问类的属性。这种定义类的方式符合java Bean规范。所谓的java Bean是一种软件开发中常常遵守的规范,它要求类的属性尽量私有化,方法尽量公有化,并提供属性的get和set方法。

所谓退出系统,就是返回到该系统的登录界面,在此界面中用户可进行登录操作,如图5-2所示。

图5-2 用户登录界面

用户登录处理,是从页面中获取用户名以及密码信息,将该信息传递给后台处理,通过Hibernate框架技术访问数据库中的用户信息,并进行比对,正确则可登入系统,否则提示密码或用户名错误,其主要代码如下:

public User login(String userName,String password){

User user = null;

try {

session = HibernateFilter.getSession(); //获取Session对象

session.beginTransaction(); //开启事物

//HQL查询语句

String hql = "from User u where https://www.doczj.com/doc/593727767.html,ername=? and u.password=?";

Query query = session.createQuery(hql) //创建Query对象

.setParameter(0, userName)//动态赋值

.setParameter(1, password);//动态赋值

user = (User)query.uniqueResult(); //返回User对象

session.getTransaction()mit(); //提交事务

} catch (Exception e) {

e.printStackTrace(); //打印异常信息

session.getTransaction().rollback(); //回滚事务

}

return user;

}

凡是能登录成功的用户,都能成功修改个人的密码,根据原密码和新密码即可完成操作,操作页面如图5-3所示。

相关主题
文本预览
相关文档 最新文档