35-5-基于JAVA平台的学生信息管理系统设计及优化(2)

更新时间:2023-03-08 05:52:41 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于JAVA平台的学生信息管理系统设计及优化(2)

4 系统设计与实现

4.1 数据库设计 在本文所研究的基于Java技术的学生管理系统中,主要使用Access数据库来对系统中的数据进

行存储。根据第三章中系统功能的分析,系统数据表的设计如下: (1)班级信息表 班级数据表存储班级信息中的班级编号、班级名称、所属院系以及所属专业等信息。班级数据表的具体设计如表4-1所示:

表4-1 班级数据表(t_banji)

字段 b_id b_nianji b_banji b_yuanxi b_beizhu 类型 文本 文本 文本 文本 文本 宽度 32 12 20 20 20 20 200 描述 32位系统GUID码 班级编号 年级 班级名称 院系名称 专业名称 备注 b_bianhao 文本 b_zhuanye 文本 (2)学生信息表 学生信息表包括学生学号、姓名、性别、所属班级、出生年月日、家庭住址等学生基本信息,学生信息表的具体设计如表4-2所示:

表4-2 学生信息表(t_xuesheng)

字段 x_id x_xuehao x_xingbie x_banji x_shengri x_zhuzhi x_beizhu 类型 文本 文本 文本 文本 日期/时间 文本 文本 宽度 32 12 10 2 20 10 200 200 描述 32位系统GUID码 学号 姓名 性别 班级编号 出生年月日 家庭住址 备注 x_xingming 文本 (3)课程信息表 课程信息表包括了课程名称、班级编号、人数、教室、教师名称等信息。课程信息表的具体设计如表4-3所示:

表4-3 课程信息表(t_kecheng)

字段 t_id t_banji 类型 文本 文本 宽度 32 12 描述 32位系统GUID码 班级编号 1

t_renshu t_jiaoshi t_teacher 数字 文本 文本 20 10 人数 教室名称 教师名称

(4)成绩信息表 成绩信息表主要包括课程名称、学生学号、学期、类型、分数等信息。学习成绩信息表的具体设计如表4-4所示:

表4-4 成绩信息表(t_chengji)

字段 c_id c_xuehao c_kecheng c_xueqi c_leixing c_fenshu 类型 文本 文本 文本 文本 文本 数字 宽度 32 12 20 20 10 描述 32位系统GUID码 学生学号 课程名称 学期 必修课或选修课 考试得分

(5)缴费信息表 缴费信息表包括学生学号、学期、缴费金额、欠费金额、缴费日期以及操作员等信息。缴费信息表的具体设计如表4-5所示:

表4-5 缴费信息表(t_jiaofei)

字段 j_id j_xuehao j_xueqi j_jiaofei j_qianfei j_riqi j_renyuan 类型 文本 文本 文本 数字 数字 日期/时间 文本 宽度 32 12 20 20 描述 32位系统GUID码 学生学号 学期 缴费金额 欠费金额 缴费日期 操作人 4.2 系统框架设计

系统主要采用了J2EE的架构,但是使用EJB的经典J2EE架构实现起来比较麻烦,学习曲线陡峭。因此,在信息管理系统具体的开发时使用了Struts+Spring+Hibernate轻量级J2EE架构,这种开源的轻量级J2EE架构,不仅保留了经典J2EE的优点,而且具备更大的灵活性。

在系统中需要编写配置文件来获取各种框架的支持,并进行各种组件直接的协调。在系统中使用了web.xml总控制器来进行全局配置:

action

itec.common.BaseServlet

config

/WEB-INF/config/sturts-config.xml

configFiles

2

service.xml,database.xml

其中的struts-config.xml是配置Struts框架的配置文件;service.xml是Spring框架的配置文件,通过service.xml的配置,系统将bean的定义都放在其中,实现了系统中业务逻辑类之间的依赖反转;database.xml对框架中的Hibernate进行了配置,其中包含了数据源、映射关系以及实体类之间的关系。

4.2.1 表现层设计

友好的表现层实现,不仅仅体现在人性化的用户管理界面,更加重要的是必须对MVC分层原理的遵循。分层原理能够将程序逻辑与页面渲染分开管理,从而避免了编码的混乱。

在控制器实现方面,系统定义了继承自Struts框架中ActionServlet类的BaseServlet类来作为前端控制器,并且重写了父类中的init()和destory()方法,congenial实现在系统初始化过程中进行日志记录。在web.xml中指定了Struts配置文件的路径,在容器初始化的过程中,由ActionServlet自动对struts-config.xml文件进行加载和解析。并通过doGet()和doPost()方法将控制权转交给处理具体业务的Action对象。

如果Action处理器直接继承struts框架中的org.apche.struts.action.Action类,并且重写父类中的execute方法,那么Action就只能实现一个业务逻辑,这样造成每个业务逻辑必须有一个Action类来支持,使得整个系统的逻辑非常混乱。为此,系统使用Struts提供的DispatchAction抽象类,对其中的execute()方法进行重写,可以将一些功能类似的Action放到同一个Action处理器中。在具体的工作中,通过对参数的判断来决定选取合适的方法。其类图如图4-1所示:

图4-1 表现层的实现图

4.2.2 业务逻辑层设计

业务逻辑层为系统中的Action提供了Model(业务模型)组件,并且封装了数据访问的接口,为系统中的业务提供了面向对象的数据访问服务。除此之外,还对系统中的缓冲池组件、权限控制以及事务进行管理,从而保证系统数据安全性和完整性,提高整个系统的性能。Spring层实现的结构图如图4-2所示:

3

图4-2 Spring实现结构图

采用面向接口的思想,使得层与层之间、模块与模块之间不是直接的提供服务,服务提供者不会被服务调用者直接实例化,而是定义了一系列的接口,服务提供者根据接口提供服务,而服务调用者更具接口调用服务,这样使得服务提供者和服务调用者之间没有直接的依赖关系,这样提高了系统的灵活性。在系统中,针对每个业务模块都设计了一系列的接口对服务进行抽象。业务逻辑层暴露接口给Action调用,所有的业务接口都继承了IBaseService接口。在IBaseService接口中对服务调用的通用方法进行了定义。这样的要出在于能系统中功能模块都封装在Service类中,方便对功能的统一管理。并且减少了DAO层中类的数量。

4.2.3 数据持久层设计

(1)ORM实现

Hibernate中的ORM的主要功能是完了数据库表到Java实体对象之间的映射。Hibernate中的ORM映射图如图4-3所示:

图4-3 Hibernate ORM映射图

在图4-3中,左边是数据库表USERS,右边是与之对应的Java持久化类User。其中定义了各种属性的set()和get()方法,在Hibernate中使用了Uer.hbm.xml配置文件来完成其间的配置。经过配置之后,系统中的功能模块只需要调用User类中的一些函数即可实现对数据库的操作,而不必要写update、insert into等复杂的SQL语句。通过User.hbm.xml配置问及那就可以实现数据库表和Java持久化类之间的对应关系。

4

(2)对数据源的配置

通过Spring与Hibernate的结合,可以由Spring对Hibernate框架提供数据源的配置支持,而不必要使用Hibernate风格的配置方法。统一采用Spring bean风格的配置方法。

com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc:sqlserver://localhost:1433;databaseName=press

其中的dataSource属性是指定了系统所使用的数据库,数据源;driverClass属性指明了Hibernate所使用的数据库驱动类;jdbcUrl制定了系统中数据库的访问地址;除此之外还有一些其他的属性,来为数据库的连接配置提供消息的配置参数(比如连接等待空闲时间或者连接池等设置)。

4.3 具体功能实现

从第三章系统分析可以看出,基于Java的学生管理系统主要包括六个主要共功能,总计20个子功能模块,其主要的功能实现如下所示:

4.3.1 系统登录

为了保证系统中数据的安全,系统需要对用户的系统登录用户名和密码进行验证后才能够正常使用系统所提供的功能。系统登录流程如图4-4所示:

开始登陆界面显示用户名密码输入用户名密码验证通过未通过进入系统系统功能使用结束

显示错误信息

图4-4 系统登录流程

5

本文来源:https://www.bwwdw.com/article/rif.html

Top