基于Java(SSH框架)+MySQL实现(Web)学生成绩管理系统【100010355】
Struts2、Spring与Hibernate整合应用:基于SSH框架的学生成绩管理系统
最近一个实验课程,需要做一个基于
SSH框架
的学生成绩管理系统
。就简简单单做了一下……
1. 要求原文
其实这个要求文档,网上有…
1.1 实验要求:
(1) 整合Struts2、Spring和Hibernate框架
(2) 实现“登录”功能
(3) 实现“学生信息管理”功能
(4) 实现“学生成绩管理”功能
(5) 实现分页功能
1.2 实验目的:
- 掌握Struts2的开发步骤
- 掌握Hibernate的开发步骤
- 掌握Spring的开发步骤,理解依赖注入、AOP、事务管理等
- 掌握Struts2、Spring和Hibernate框架的整合
- 掌握分页技术
1.3 实验思路:
1、 建库建表
2、 利用分层思想,建package
3、 添加Spring开发能力
4、 添加Hibernate开发能力
5、 生成Hibernate所需的POJO类和映射文件
6、 开发DAO层
(1) 新建DAO层接口。
(2) 新建DAO层实现类(该类要实现DAO层接口,继承HibernateDaoSupport类)。
(3) 在Spring配置文件中增加该DAO层实现类的定义,并需要依赖注入一个SessionFactory bean的引用。
7、 开发Service层
(1) 新建Service层接口。
(2) 新建Service层实现类,该类中需要声明所调用DAO层接口,并生其setter方法。
(3) 在Spring配置文件中增加该Service层实现类的定义,并需要依赖注入DAO层的bean。
8、 实现WEB层
(1) 在web.xml中增加struts2的过滤器和Spring的监听器。
(2) 增加Spring和Struts2的整合文件struts.properties。
(3) 新建所需的jsp文件。
(4) 新建Action类,该类要继承ActionSupport,同时该类要依赖注入Service的bean(声明+setter方法)。
(5) 在Spring配置文件中增加该Action类的定义,并注入Service层的bean。
(6) 在struts.xml中增加该Action的定义,其中class的属性是在Spring中定义的该Action bean的id。
9、部署运行
1.4 创建数据库:
在原文中,项目要求建立的数据库有相信的说明。这里不再赘述。
完整的数据库文件,请见 database/j2ee_student_db.sql
数据表主要有:
-
登录表User
-
学生信息表Student
-
专业表Major
-
课程表Course
-
成绩表Grade
2. 项目实现
2.1 技术栈与开发环境
- 后台基于
SSH
框架、采用Maven
进行包管理,使用Idea 2018
进行开发 - 前端基于
JSP
,使用JQuery
,使用ymPrompt
框架的弹窗 - 数据库
MySQL
,版本为5.5.62
,编码格式为UTF-8
- 容器为
Tomcat
,版本为8.0
- 全部字符集编码为
UTF-8
2.3 项目运行图
以下截图中的数据,非真实数据
登录页面:
后台主页:
如果直接访问后台主页,拦截器进行拦截,并返回登录页。
学生管理之学生列表页:
主要是分页显示数据。
学生模糊查询页面
新增学生页面:
其中学号是不可编辑的,由系统生成!
添加成功后:
添加成功后,提示“添加成功”,并且页面自动刷新加载新数据
查看学生详细信息页:
只能查看,不可编辑(主要是查看照片)
编辑学生信息页:
加载原始信息(包括照片),修改后,所有信息替换成新的。学号不可编辑。
删除学生提示页:
需要两步确认
学生成绩管理页:
这里懒得写分页了,逻辑和学生列表一致。
筛选查询:
编辑成绩:
关于成绩管理模块,上图中的“新增”和“删除”功能未实现,如有需要可扩充。
课程管理:
上图"新增"、“编辑”、“删除”功能未写。
专业管理:
上图"新增"、“编辑”、“删除”功能未写。
♻️ 资源
大小: 3.84MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87364007
相关文章
- 安装完 MySQL 后必须调整的 10 项配置(转)
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
- macos:安装java 17.0.6(android studio报错:Unable to locate a Java Runtime.)
- MySQL查看表占用空间大小(转)
- 删除mysql 安装 mysql 5.1.65 5.1.73
- MySQL体系结构
- MySQL高可用性之Keepalived+Mysql(双主热备)
- 【Java】java使用反射访问对象方法和成员变量
- 更改MySQL数据库的编码为utf8mb4
- MySQL--执行mysql脚本及其脚本编写
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- macos:安装java 17.0.6(android studio报错:Unable to locate a Java Runtime.)
- Mysql索引数据结构有多个选择,为什么一定要是B+树呢?_面试 (MySQL 索引为啥要选择 B+ 树)
- [转]2006 MySQL server has gone away错误,最大值溢出解决办法 mysql max_allowed_packet 查询和修改
- Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道
- mysql一些使用技巧
- 【华为云技术分享】万万没想到,我在夜市地摊解决了MySQL临时表空间难题~~
- MySQL 5.6.26几种安装包的差别
- 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略
- mysql创建 存储过程 并通过java程序调用该存储过程
- 【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置
- mysql 加入列,改动列,删除列。
- 数据库MySQL基础入门之MySQL隐式转换
- Groonga开源搜索引擎——列存储做聚合,没有内建分布式,分片和副本是随mysql或者postgreSQL作为存储引擎由MySQL自身来做分片和副本的
- Mysql报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- Mysql之加密连接mysql_ssl_rsa_setup
- Mysql入门技能树-聚合和分组
- Mysql实战篇之Mysql抖动现象--04
- 【MySql】MySQL数据库--什么是MySQL的回表 ?
- JAVA开发讲义(二)-Java程序设计之数据之谜一