基于SSH的实验室设备管理系统的设计与实现

2015-05-30 00:44赵相宇等
软件工程 2015年9期
关键词:设备管理

赵相宇等

摘 要:实验室设备管理系统为解决以往的实验室由管理人员手动管理的费时费力等多方面问题而设计。本文通过系统分析、数据库设计、系统实现、系统测试四个方面对实验室设备管理系统进行分析与设计。在本系统的开发过程中,充分考虑到了后期系统的维护工作,采用了SSH框架来完成整个系统的开发,用MySQL作为后台数据库存储数据信息,MyEclipse作为开发工具,紧紧贴合实验室的需求。

关键词:业务层;逻辑层;控制层;设备管理

中图分类号:TP311.52 文献标识码:A

1 引言(Introduction)

随着现代科技的发展和进步,实验室成为一些高校以及科研院所的必备,实验室设备的管理问题关系到实验教学与科研项目是否能成功运行,传统的纸质报表管理模式随着时间的推移数量的庞大,不便于保存和统计,无法准确了解实验设备运行状态和使用情况。随着信息技术的发展,人们更加青睐于将这样复杂的工作交给计算机来进行处理,该系统的开发便是基于这样的需求,将实验室的管理需求进行信息化处理。通过该系统来规范的存储和统计实验室的设备信息。

2 系统的主要设计工作(Major design work of the

platform)

2.1 系统的主要任务

实验室设备管理系统能够通过系统管理员实现对设备的分类管理;可以对合法的注册用户发出的设备借用申请进行审批并提交审批意见和审批结果进行记录;并在被借设备归还时进行归还操作;管理员还可以对设备的维修信息记录并可以查看历史维修记录,通过本系统,管理员可以进行各类数据的统计、报表,方便为管理者提供有价值的信息。系统具有数据安全准确、界面友好、操作简洁、便于维护和升级等特点。

2.2 系统开发工具简介

该系统在Windows7操作系统上,采用SSH框架来完成整个系统的开发,用MySQL作为后台数据库存储数据信息,MyEclipse作为开发工具。SSH即Struts2+Spring+Hibernate。Struts2是基于MVC模式的一种框架,对Model层、View层、Control层都提供了相应的组件;Spring是一种轻量级的控制反转和面向切面的容器框架,解决了企业应用开发的复杂性的问题[1]。MySQL是为人们普遍应用的中型关系型数据库,它提供的数据类型与Java中的数据类型基本相吻合,避免了不少繁琐的类型之间的转换问题,为本系统的数据的管理和维护提供了方便。Hibernate是对象关系映射框架,可以应用在任何能用到JDBC的场合,扮演着数据持久化的角色[2]。系统具有数据安全准确、操作简洁、界面有好、便于维护和升级等特点。

3 系统的总体功能框架设计(The general design of

the system)

根据系统需求分析,可以将实验室设备管理系统分为两个主要模块,分别介绍如下。

3.1 管理员模块

在这个模块中,主要实现的是管理员利用系统对普通的用户和实验室设备进行管理,详细的操作有:对本用户进行修改密码;对注册用户进行停用和恢复密码;对设备类型进行管理;对设备进行管理;对用户发出的借用申请进行审批;设备维修管理。具体的功能框架如图1所示。

3.2 注册用户模块

在本模块中,主要实现的是注册用户操作本系统借用设备,具体操作有:注册用户可以自行修改本用户的密码;注册用户可以对设备发出借用申请;注册用户可以查看申请结果;注册用户可以查看借用历史。具体的功能框架如图2所示。

4 数据库设计(The design of database)

根据系统的设计要求,系统应该保存设备相关信息,管理员信息和使用者信息,为满足各项功能的需要,系统数据库设计如下。

4.1 管理员信息与学生信息设计

学生信息表即用户表,系统的设定本为学生对实验室设备进行借用、归还等操作,所以用户表即为学生表。管理员信息表是专门存放管理员登陆信息的数据表。具体数据结构如下:学生表(t_student)=<学生编号(id),学生姓名(name),学生性别(sex),学号(stuId),登录名(loginName),登录密码(loginPw)>。管理员表=<编号(id),用户名(username),密码(password)>。

说明:学生编号与学号不同,学生编号仅仅是为了作为数据表中主键的,区分其他字段的唯一标识的存在。表中除了学生的基本信息外还有作为用户信息的登录名和登录密码,也保存在表中。

4.2 设备类型设计

为了方便对设备进行管理,系统设计了设备类型管理功能,设备类型表用于存放各个设备的类型信息:设备类型表(t_type)=<类型编号(id),类别名称(typeName)>。

4.3 设备信息设计

设备信息表=<编号(id),设备类型(typeId),设备编号(deviceId),设备描述(description),购买时间(time),状态(state)>。

说明:设备信息表用于保存设备信息,编号和设备编号不同,编号是逻辑上表的主键,唯一标识,而设备编号是对应到每一台设备上的物理上的对设备进行区分的标号;设备类型作为外键,保存设备类型表中的主键,状态用来保存设备当前的状态,例如:空闲、借出、维修中等。

4.4 设备申请、借用与维修设计

设备申请表=<编号(id),申请人(stuId),申请设备(devId),申请时间(applyTime),审批时间(approveTime),审批意见(opinion)>。设备借用表=<编号(id),申请人(stuId),申请设备(devId),借用时间(borrowTime),归还时间(returnTime),是否损坏(isBroken),赔偿金额(compensation),备注(remark)>。设备维修表=<编号(id),维修设备(devId),维修时间(serviceTime),维修内容(content),维修人(serviceman),维修金额(payment),备注(remark)>。

说明:设备申请表是管理员用户在后台处理设备借用申请时用到的表,其中申请人和申请设备分别为学生表和设备表的主键,在此表中作为联合外键。设备借用表中的申请人和申请设备与其同理。设备借用表中需要存放设备的状态,即用户归还设备时,管理员需查看设备是否损坏,并确定相应的赔偿金额。如果设备有所损坏,则在维修表中增加一条记录,记录设备维修的相关信息。

5 系统重要功能的具体实现(The concrete realization

of the important function of the system)

本系统采用的SSH框架,其中Hibernate起到的作用就是数据持久化,通过在代码中添加注解的方式实现。这种形式的Hibernate通过访问JavaBean能自动生成较为合理,清晰的数据表。Hibernate使用的hql语言也是针对Java类而不是数据库表的,所以使用起来也会比sql语句方便、有效。

5.1 系统的业务逻辑层实现

实验设备管理要求:管理员可以添加设备分类并根据设备分类进行添加设备信息,管理员可以查看、修改和删除设备信息,设备信息查询的结果包括设备编号、设备名称、设备类型、购买时间、设备状态。当用户对设备发出借用申请时,管理员可以处理该申请,或同意,或不同意,如果管理员同意用户的借用申请,则应在系统内进行登记操作,此时该设备的状态将变为“已外借”。当用户归还设备时,管理员应查看设备的损坏程度,开出相应的赔偿金额并在系统内进行归还操作。管理员可以录入维修损坏的的设备信息和查看某个设备的历史维修记录。

5.2 系统的数据访问层实现

该层主要通过Hibernate配合Dao来实现。数据库访问层是为业务逻辑层提供数据服务,通过访问数据库中的数据,进行加工,来实现系统各个功能模块对数据的需求。

5.3 系统表示层实现

视图层是通过前端web的形式实现系统和用户之间的交互,主要表现形式为JSP页面。以下展“管理员功能模块”主要实现的功能和主要代码。

“管理员功能模块”包括用户管理、设备类型管理、设备管理模块、设备借用管理模块、设备维修管理模块五个部分。以下展示用户管理模块、设备类型管理模块和设备管理模块的功能和控制层代码。

5.3.1 用户管理模块

在后台主页面上可以看到“用户信息管理”标签,点击该标签,列出所有用户,包括管理员用户和普通用户,管理员可以通过每个用户所在行的后面的两个按钮实现冻结用户和初始化用户密码的功能,其中初始化用户密码是将该用户的密码初始化为“111111”,实现代码如下:

public String pwChange(){

String sql="update TStudent set loginPw='111111'where id="+id;

TStudentDao.getHibernateTemplate().bulkUpdate(sql);

this.setMessage("密码初始化成功");

this.setPath(studentMana.action);

return"succeed";

}

5.3.2 设备类型管理模块

在后台主页面上点击“设备类型管理”标签则列出所有设备类型,管理员可以对设备类型进行新增、修改、删除操作,以下代码实现设备类型的新增功能:

public String typeAdd(){

type.setDel("no");

TTypeDao.save(type);

this.setMessage("类型添加成功");

this.setPath("typeMana.action");

return"succeed";

}

5.3.3 设备管理模块

在后台主页上点击“实验设备管理”标签则列出所有实验设备,与设备类型管理模块相似,管理员可以对设备进行新增、修改、删除操作,以下为查看设备列表主要代码:

Session sqlSession=TDeviceDao.getSessionFactory().openSession();

SQLQuery sqlQuery=sqlSession.createSQLQuery(sql);

List objList=sqlQuery.list();

for(Object obj:objList){

TDevice device=new TDevice();

device.setId((Integer)obj[0]);

device.setDeviceId((String)obj[1]);

device.setDescription((String)obj[2]);

device.setTime((String)obj[3]);

device.setStrType((String)obj[4]);

device.setStrState((String)obj[5]);

device.setState((Integer)obj[6]);

deviceList.add(device);

}

sqlSession.close();

request.setAttribute("deviceId",deviceId);

request.setAtrribute("deviceName",deviceName);

request.setAttribute("deviceList",deviceList);

return"deviceQuery";

6 结论(Conclusion)

本论文设计的实验室设备管理系统,对于任何实验室均可用。为实验室管理员提供了高效、省时、便利的管理方式。该实验室设备管理系统主要包括了用户登录、设备录入、设备管理、设备分类管理等模块,主要实现对设备的高效管理。系统的设计便于后期的维护与升级[3]。

参考文献(References)

[2] BruceEckel.Java编程思想[M].北京:机械工业出版社,2003.

[1] 孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电

子工业出版社,2003.

[3] 孙涌.现代软件工程[M].北京:北京希望电子出版社,2003.

作者简介:

赵相宇(1990-),男,本科生.研究领域:软件开发.

刘 燕(1963-),女,硕士,教授.研究领域:数据挖掘,算法

设计.

王金玲(1971-),女,硕士,副教授.研究领域:数据库技术.

猜你喜欢
设备管理
企业基于自动化设备管理与维修的分析
现代施工企业物资设备管理问题探究
医疗设备的管理与维护系统的设计
数据库软件在设备管理中的应用
电力安全管理中常见的问题及措施
物联网技术在设备管理中的应用
当前铁路工务线路设备管理对安全生产的作用分析
铁路设备管理系统的设计与应用