戚 平, 王 林, 李 末
(中国石油大学(华东)计算机与通信工程学院,山东 青岛 266555)
当前社会已经步入了信息技术高度发展和应用的时代,信息技术的应用已经成为一个企事业单位在社会中生存发展的重要决定因素,所以通过网络进行信息管理的网络管理系统的出现和普及是社会发展的一个趋势。管理信息系统是一个由人﹑计算机组成的能进行信息收集﹑传递﹑存储﹑加工﹑维护和使用的系统[1]。
计算机技术和通信技术不断快速发展,网络的全球普及化,“无纸化办公”思想在地球资源日益枯竭的威胁下深入人心,全世界都在根据自己的实际情况,开发出一系列的网络管理、网络办公系统,有效地解决办公地域全球化,以及规模扩大所带来的各种问题。
随着我国高等教育逐步从精英教育向大众教育过渡的趋势,近年来,我国各类高校招生规模不断增大,每年新生入学人数不断增加。在这样的前提下,由于高校学生人数的逐年增加,必然要求各高校不断补充实验设备,改善实验室设备管理水平,从而提高实验室设备的利用率,而高校实验室设备的数量和管理水平则是考核一所高等学校办学条件的一项重要指标。
从我校自身角度来说,实验室设备管理仍然采用的是传统的管理模式:实验室各部门分发实验设备时,需要人工登记,诸如设备预约、预约时长、设备归还、报废等具体操作。实验室设备相关信息的查询还必须组织人员亲自到实验室进行。事实证明:这种传统的实验室管理模式既浪费人力资源,又不利于提高工作效率,甚至难以提高设备资源的利用率,不能支持大量学生用户的使用等。基于以上原因,设计开发一个实验室设备管理系统,使得网上管理设备数据更加实用、有效就成为必然。
实 验 室 设 备 管 理 系 统 采 用 java、JavaBean、JavaScript、JDBC等技术进行开发,采用了在JSP页面中调用JavaBean,并在JSP页面中的输入栏中添加了JavaScript。JDBC用于一开始与数据库的链接,主要满足管理员对系统的管理功能,实验室主管对系统的管理功能,用户对系统的查询预约功能。各个模块分别是用户模块、实验室模块、设备模块、修改资料和密码模块、退出模块等。管理员负责对用户和实验室以及整个系统的管理,实验室主管负责对设备的管理;用户仅需要对实验室里的设备进行查询和预约设备进行相关实验,不需要关注系统的具体工作流程及工作细节问题。主要的功能模块衔接如图1所示。
数据库方面选择使用SQL Server 2000,在实现系统功能的基础上最大限度的防止了非法窃取他人信息的行为的发生[2]。此系统使高校实验室管理更方便、高效,实现了设备数据的共享以及网络化的管理,帮助高校有效地对设备相关数据和用户相关数据以及实验室相关数据进行全面信息化的管理。整体功能结构图如图2所示。
图1 主要功能模块衔接图Fig.1 Convergence diagram of main function modules
图2 系统功能结构图Fig.2 Functional structure
系统在实现不同的功能模块时,都要用到连接数据库的操作,连接数据库的具体操作如下所述,建立一个公共访问数据库的类,以减少多余代码,并使用JDBC连接数据库[3]。具体的连接步骤如下:
1)把SqlServer的3个连接数据库的包msbase.jar、mssqlserver.jar、msutil.jar先添加进来;再定义变量
把在与数据库相关联的变量定义出来,便于以后使用。其中userName是SQL Server2000中使用的用户名,userPassword是用户名对应的用户密码,URL是要建立连接的地址。
2)加载及注册驱动
加载驱动程序后,创建一个driver对象,并经由调用drivermanager.registerdriver()来自动注册此对象。
3)建立连接
说明:“jdbc:microsoft:sqlserver”是通讯协议;
主机地址:localhost或本机ip地址;
端口号:1433,然后数据库名称:labdate;
用户名:sa 密码:“”。
4)建立一个SQL陈述式对象
5)执行 sql语句
在软件架构过程中,不可避免地遇到了不少问题,下面是遇到的主要问题及解决方法。
1)问题描述:建立映射之后,接着对数据库进行操作,提取连接表之间的数据时,提示:org.hibernate.LazyInitializationException:could not initialize proxy-the owning Session was closed
解决方法:这是使用Hibernate经常出现的一个错误,原来表的映射文件属性lazy默认值为true,将其值改为false就可以了[4]。
2)问题描述:在提取数据库中的用户信息时,因为有图片,将查询得到的所有用户信息记录放到一个list中时,提示错误,说list中不能存放图片类型的对象,即格式不正确。
解决方法:错误原因是Hibernate连接数据库的驱动有问题,把驱动换成Microsoft SQL server(JTDS)就可以了。
3)问题描述:对设备档案数据行增加、修改操作时,提示错误:a different object with the same identifier value was already associated with the session,就是说在一个session中存在两个不同的对象使用了相同的ID。
解决方法:这个问题比较难解决,如果对Hibernate不是很熟悉,只根据一些相关资料,将session的一个方法update()改为 saveOrUpdate()或者 session.merge(),又或者其他的一些方法,问题是难以解决的。最后通过更换session中的一个方法得以解决,即改为session.load(lx,sbdasjsForm.getSblx()),sb.setSblx(lx),session.clear(),session.update()。 其 中 lx是设备类型的一个对象类,sb是设备档案数据的一个对象。
4)问题描述:在刚开始编写代码时,做了一个带验证的框架时提示:java.lang.IllegalArgumentException:Resources cannot be null。意思是资源不能为空。
解决方法:在struts-config.xml的配置文件中加上验证插件 <plug -in className = ”org.apache.struts.validator.validatorPlugIn”><set-property property=”pathnames” value=”/WEB-INF/validator-rules.xml, /WEB-INF/validator.xml” ></plug-in>。
5)问题描述:首先,由于浏览器中的参数传递是按字节传送,因此英文和数字不会有任何的问题,而中文汉字则由两个字节组成,此时就会出现乱码。其次,jsp页面出现中文时,页面中文出现乱码,再次是往数据库里添加数据时,出现中文不能识别,出现乱码问题。
解决方法:首先,对于参数传递乱码和jsp页面是通过设置页面编码为“gbk”或“gb2312”,具体编码如下:
其次,数据库乱码问题是通过过滤器filter,添加数据时,首先通过过滤器来识别,如果有中文,则把编码方式改为“gbk”,过滤器 doFilter()方法如下[5]:
6)问题描述:添加用户信息时,也是因为有图片的缘故,导致出现以下异常:javax.servlet.ServletException:BeanUtils.populate
解决方法:这个是JSP中Form表单中的问题,ActionForm中的property不一定全是String类型的,也可以有别的类型,因为用户信息中有用户照片这个属性,其类型比较特别[6]。Action接收到page的request后,会对Form进行填值,调用BeanUtils.populate method对各种数据类型进行转换,其转换照片类型时抛出了上述异常。经过仔细分析,发现在 JSP页面<html:form>标签属性中加入 enctype=“multipart/form-data”即可。
7)问题描述:导入Excel数据到数据库中时,总是提示不能将number类型的数据插入到String类型属性中。
解决方法:Excel中表格的数据类型必须与表中属性类型一致,而且各个属性要对应好,否则,将不能把数据插入到数据库中。因此,解决以上错误时,在程序中应进行判断,进行格式转换,或者设置Excel表格中值的类型,在程序中设置表格数据类型并保持属性一致。
实验室设备管理系统研究目的在于对高校实验室内设备进行系统管理,使系统功能更加完善,满足用户的需求,并对实验室设备进行系统化、规范化、信息化的管理。因此,使用JSP技术与SQL Server数据库开发的实验室设备管理系统具有一定的理论和实践意义,符合当前社会网络化办公的趋势:
1)对整个系统的设备进行系统管理,以实现设备的综合效率。随时随地通过网络全面准确记录、保存设备各项数据,特别是设备的损坏,并将损坏设备纪录,让实验室主管可以清楚的理解设备状况。
2)提高设备的利用率和降低设备损耗成本,避免或减少因设备损坏而导致的安全事故。有助于设备生命周期中的所有信息被实验室主管和管理员查看和利用,促进相关信息的系统化管理。
3)提高设备数据的科学管理,节省人力和时间,减少原来传统的实验室管理方法造成的纸张浪费以及各种成本,为高校实验室创造更多的价值。
[1]仲秋雁.管理信息系统[M].北京:清华大学出版社,2010.
[2]刘遵仁,于忠清.从零开始—SQL Serve中文版基础培训教程[M].北京:人民邮电出版社,2004.
[3]汪孝宜,刘忠兵,徐佳晶,等.JSP数据库开发实例精粹[M].北京:电子工业出版社,2005.
[4]郑阿奇.JSP实用教程[M].北京:电子工业出版社,2008.
[5]刘中兵,李伯华,邹晨.JSP数据库项目案例导航[M].北京:清华大学出版社,2006.
[6]张蓓,赵国峰.JSP数据库通用模块开发和系统移植[M].北京:清华大学出版社,2007.