一、总体设计
1.1 数据库设计
该数据库中一共有两张表,一张是学生成绩表,一张是班级表。班级表(t_class)包括:班级编号(classNo)、班级名(className)。其中班级编号为主键。学生成绩表(t_score)包括:学号(stuNo)、姓名(stuName)、平时成绩(dailyScore)、考试成绩(examScore)、班级编号(clsNo)。其中学号为主键,班级编号为外键。
如下表:
数据库ER-图为:
建成数据库t_score表:
建成数据库t_class表:
1.2 项目过程设计
1.用户可以查询、修该、删除、新增学生成绩信息。其用例图如下:
2.具体操作如下:
二、详细设计
2.1 环境搭建及素材准备
1.素材准备
选取几张.jpg格式的图片放到一个images文件夹中,待工程建好后,将文件夹放到WebRoot文件夹下,等待调用。主要是为了页面美观。
2.环境搭建
在数据库创建好后:
(1) 打开MyEclipse–>File–>New–>Web Project
(2) 切换到Hibernate面板
(3)在DB Browser中右键新建一个数据源
(4)Struts2,Hibernate,Spring整合
导入Spring (注意:注意需要导入的包,如下图)
导入Hibernate (注意:如果需要使用Spring配置文件来统一管理如图选择)
选择数据源
取消创建SessionFactory
导入Struts2 (注意:需要导入的包如下图)
1 | 解决冲突包,由于三个框架的整合要解决几个框架中冲突的JAR包 |
2.2 实现过程
类图:
1.学成绩信息显示
(1) 在src中建edu.rg.score.entity、edu.rg.score.action、edu.rg.score.dao、edu.rg.score.service四个package。
(2)切换为Hibernate面板用t_class表做逆向生成类。
(3) 在edu.rg.score.dao包中,新建ScoreDao类,在其中添加查询学生成绩信息的代码:1
2
3
4//查询学员列表
public List<Score> getScoreList(){
return this.getHibernateTemplate().find("from Score");
}
(4) 在edu.rg.score.service包中,新建ScoreService类,添加将dao层注入的1
2
3
4
5
6
7service层代码:
public ScoreDao scoreDao;//使用依赖注入
public List<Score> getScoreList(){
return scoreDao.getScoreList();}
public void setScoreDao(ScoreDao scoreDao) {
this.scoreDao = scoreDao;
}
(5) 在edu.rg.score.action包中,新建HelloAction类,添加代码:1
2
3
4
5
6public List<Score> list;
private ScoreService scoreService;//使用依赖注入
public String execute(){
list = scoreService.getScoreList();
return "success";
}
(6)在applicationContext.xml中对这三个类进行注入,举一个例子(dao注入):1
2
3
4<!-- dao注入 -->
<bean id="scoreDao" class="edu.rg.score.dao.ScoreDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
(7)在index.jsp中引入指令和添加迭代集合数据的代码:1
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
(8)在struts.xml中配置:
1 | <struts> |
2.学生成绩信息添加
(1)在ScoreDao类中添加增加学生信息
(2)在ScoreService类中编写调用dao的方法
(3)在HelloAction类中引入dao实体
(4)新建add.jsp,作为添加页面,单标签action的地址
提交元素的name属性
(5)在index.jsp中添加页面跳转
3.学生成绩信息修改与删除
(1)在ScoreDao类中添加个根据id查询学生成绩信息、修改学生信息及删除学生信息
(2)在Score1Service类中添加调用dao的方法
(3)在HelloAction类中添加执行
(4)新建edit.jsp,为修改页面
(5)在index.jsp中添加页面跳转
(6)在struts.xml中添加响应
2.3 实现结果
1.初始界面
2.修改界面
3.添加界面
三、总结
该成绩管理系统通过Struts作为动作的控制器、Hibernate和Spring作为数据库操作和依赖注入完成的一个简单的SSH框架的应用。
注:
- 如有不正确还请见谅。
- 需要本程序代码请访问: ScoreManagement
- 另外,我做了一些关于Spring、Struts、Hibernate的小应用可以帮助理解这些框架,如需代码请访问我的Github:https://github.com/Zxnaruto