基于struts和Hibernate的学生考勤系统的设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于struts和Hibernate的学生考勤系统的设计

来源:中国一卡通网  作者:周程 张艺超 马汝贞  发布时间:2009-04-27 10:03:44  字体:[ ]

关键字:学生考勤  mvc  struts  hibernate  

摘   要:为克服手工处理学生考勤信息的缺点,采用JAVA环境下实现MVC设计模式的struts框架和实现数据持久化的Hibernate框架开发基于Web的学生考勤管理系统。在struts和Hibernate中添加DAO设计模式和业务代理模式来进一步提高系统的维护性和可扩展性。探讨了如何结合PowerDesigner和Myeclipse等工具快速开发应用系统。

    1、MVC设计模式设计模式概述

    1.1 MVC设计模式

    MVC设计模式是一种著名的软件开发设计模式,它是模型、视图、控制器(Mode1.View.Controller)缩写。模型封装了用户数据和处理数据的业务逻辑;视图提供了用户界面,将用户输入数据传递给控制器或将模型数据显示给用户;控制器连接了模型和视图,判断请求交给哪个模型,调用视图显示模型处理用户请求结果。

    MVC设计模式将应用程序进行了分层,视图和模型通过控制器连接,从而减少了用户界面和业务逻辑之间的耦合,使程序设计更加清晰、灵活,也提高了软件的可扩展性、可维护性。

    1.2 Struts框架

    Struts是基于的MVC模式应用框架,遵守了J2EE的Servlet、JSP等技术规范,并且根据J2EE的特点做了相应的变化和扩展,是J2EE体系架构的一种轻量级实现。

    在Struts框架中,控制器由ActionServlet和Action类以及Struts.config.xml配置文件实现。ActionServlet是Struts框架的核心控制组件, 所有的用户请求都被映射到ActionServlet, 由ActionServlet根据配置文件中的定义将控制转移到指定的Action类。Action类是用户请求与业务逻辑之间的桥梁,它执行一个execute()方法并返回一个ActionForward对象,当ActionServlet接收到该对象后,根据Struts config.xml中的配置信息将请求转发。Struts框架中的视图主要由JSP页面组成。ActionForm是Struts在视图层的一个核心组件,它是专门用来在视图层和控制层之间传递表单数据的DTO(Dam Transfer Object,数据传输对象),它还包括了用于数据验证的validate()方法和用于数据复位的reset()方法。]在Struts应用程序中,开发人员可以选择JavaBean、Hibernate、EJB等组件来实现Struts框架中的模型。

    2.Hibernate持久化技术

    Hibernate是一个基于Java的开放源代码的O/R Mapping(对象关系映射框架),它通过其强大的O/R映射功能JAVA对象同存于关系数据库中的数据进行映射,并对JDBC进行了轻量级的对象封装,可以使JAVA程序员方便地使用对象编程思维来操纵数据库,它不仅提供ORM映射服务,还提供数据查询和数据缓存的方法,可以提高查询和处理数据的效率。它是一种提供面向对象的数据库服务中间件。

    3.基于Struts和Hibernate的考勤管理系统的设计

    随着教育部对在校大学生出勤的相关规定出台,各大专院校加大了对学生考勤的管理力度,但大部份都采用手工处理的方法,工作量大且效率低。本系统能够实现网上对学生考勤信息进行添加、删除、修改、查询和统计功能,管理人员能及时了解学生出勤情况和某课班级某课程的出勤情况。在开发的过程中,使用PowerDesigner作为CASE工具,采用对Hibernate和Struts提供良好支持的Myeclipse 6.0作为系统的开发环境,数据库采用MYSQL5.0,WEB服务器采用jakarta Tomcm6.0并安装了JDK6.0。

    3.1数据库层的设计

    PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计。DataArchitect模块是Powerdesigner的核心工具,它采用二级数据建模方式,即概念级和物理级。在概念级,概念数据模型(CDM)代表业务信息需求,不考虑在数据库上的物理实现,通过它可以绘制系统的实体联系图(E.R图),即系统的静态特征;在物理级,物理数据模型(PDM)指定了物理实现的目标RDBMS的特征等细节。它可以生成数据库脚本,通过选择ODBC方式则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象。它与其它设计软件相配合使用可以缩短开发时间和使系统设计更优化。

    在本系统的设计过程中,我们利用PowerDesigner来完成系统数据库概念设计和MYSQL数据库表的工作。首先,在PowerDesigner中设计系统的概念层次的数据模型,通过它的CDM 功能创建实体关系图来描述系统的数据组织结构。通过它的“检查模型”功能,校验概念数据模型中实体、实体属性、实体标识和实体间关系等是否存在问题。接着,选择MYSQL作为系统的目标数据库,生成在MYSQL上实现的数据库的物理数据模型(PDM):最后,通过“产生数据库”功能,并选择ODBC方式连接到指定的数据库,从而直接产生MYSQL上的数据库表以及其他数据库对象。

    3.2 持久化层的设计

    数据持久层基于Hibernate架构,采用了DAO设计模式和抽象工厂设计模式。下面以学生类(Student)为例进行说明。首先,把学生信息封装为VO(Value Object)。VO是一组值对象,只包含了一些属性和getter/setter方法的POJO(Plan Old Java Bean) 。然后,采用DAO设计模式和抽象工厂设计模式,完成DAO工厂和Hibernate数据库操作的具体实现。最后,利用Hibernate的配置文件完成从应用程序到数据库的映射。

    在Myeclipse开发环境中,首先配置数据库服务器的连接,然后利用Myeclipse的Hibernate的逆向工程,可以自动完成持久化层的设计任务。例如对学生表(student)进行逆向工程, 将会自动生成Student.iava、AbstractStudent.iava、StudentDAO.iava、Student.hbm.xml等文件。其中,Abstract Student.iava就是一个封装了Student信息的VO。Student DAO.java采用DAO模式封闭了数据库操作。

    在hibemate.cfg.xml配置文件中,定义了符合SQLServer规范的dialect方言,连接池访问数据库的URL资源定位地址以及数据库名称kq, 数据库连接驱动程序,Hibernate管理事务、是否显示SQL语句。在mapping映射文件配置部分,定义了教师表(Teacher)、学生表(Student1、考勤表(Attendance)等对应的映射文件等。在该层的设计中,VO的信息封装体现了面向对象设计编程思想;DAO的设计模式和抽象工厂模式减弱了上层调用和具体实现之间的耦合;Hibemate配置实现了数据库高移植性,只需要改变Hibemate配置文件,不用修改程序设计就可以完成不同数据库之间的更换。

    3.3 业务逻辑层设计 

    业务逻辑层包含了供客户端程序调用的业务逻辑规则,以帮助客户端完成业务操作。该层采用业务代理、DAO和抽象工厂设计模式使用业务代理、DAO和抽象工厂设计模式,可以使业务逻辑更加灵活,如果具体业务发生变化,在表示层和数据持久化层改变很小就可以完成改变,这种设计能够增强系统的可维护性和灵活性。

    3.4 表示层设计

    首先,建立用于用户输入和浏览的JSP视图页面和封装用户表单信息的ActionForm。接着,搭建用户请求和业务逻辑之间的桥梁——Action组件,该组件负责把用户信息和具体的业务逻辑处理联系在一起。

    最后,通过Struts配置连接ActionForm和Action,完成一个业务设计。该层设计中,采用页面设计和表示层业务逻辑分离,提高了应用程序的可维护性。

    4.总结

    本文介绍了MVC设计模式以及Struts和Hibernate框架的工作原理,利用了他们的优点互补,有机地将Struts+Hi.bernate框架结合起来构建了一个学生考勤管理系统,利用DAO设计模式、业务代理模式等克服了传统Web信息系统的缺点,提高了系统的可维护性、可扩展性,降低了系统的耦合性。通过使用Powerdesigner和Myeclipse等开发工具能够有效的加快开发速度和效率,大大减少开发人员的手工编写代码的工作量。随着本系统的应用,教师可以随时随地上报出勤情况,管理人员可以随时了解每门课程每个班级和每个学生的出勤情况,本系统通过汇总功能产生因出勤率低而取消考试资格的学生名单。这对提高教务管理工作效率意义较大。 

    (文/广州康大职业技术学院 周程 张艺超 马汝贞)

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖