JavaWeb 自适应学生成绩信息管理系统SAMS

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: JavaWeb 自适应学生成绩信息管理系统SAMS

开发环境

JDK 1.8

MySQL 5.7

MAVEN 3.8.1

Tomcat 9.0.45

SpringMVC

引用 jar 包:


junit、druid、dbutils、dom4j、mysql-connector、servlet、fastjson、jackson-databind、jackson-core、jackson-annotations、lombok、aspectjweaver、spring-webmvc、spring-core、jwt


演示

登录页面

image.png

学生页面

d3905a4e47a5a672a3a045f614dfd2bc.png

教师页面

0cf9f7fa77d0cd0383c8fccfb4b184f2.png

95053d9aac75a310e3422fdc79376243.png

管理员页面

0e8d10c598ab41f0c453a7d0bff33556.png


系统概述

学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。

  • 管理员通过账号、密码登录,管理员进入系统可以对课程,系部,教师,学生,专业进行添加、查看。
  • 教师通过教工号和密码登录,教师进入系统可以查看自己教的所有课程,以及对选该课程的学生成绩进行修改。
  • 学生通过学号和密码进行登录,学生进入系统可以查看自己学习课程的信息以及成绩。

系统功能分析

Student

  1. 登录
  2. 查看成绩

Teacher

  1. 登录查看课程
  1. 查看学生成绩
  2. 录入成绩

Administrator

  1. 登录
  2. 查看系部
  3. 查看系部下的专业
  4. 查看专业下的班级
  5. 查看班级下的学生
  6. 新建系部
  7. 新建系部下的专业
  8. 新建专业下的班级
  1. 新建班级下的学生
  2. 新建课程

项目实现

数据库

创建数据库

CREATE DATABASE sams;

创建 administrators 数据表

CREATETABLE `administrators` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(40) DEFAULT NULL,  `account` varchar(40) DEFAULT NULL,  `password` varchar(40) DEFAULT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `UNIQUE` (`account`) COMMENT '账号唯一') ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

创建 calsses 表

CREATETABLE `classes` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(40) DEFAULT NULL,  `graduationyear` varchar(40) DEFAULT NULL,  `majorid` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `majorid` (`majorid`),  CONSTRAINT `classes_ibfk_1` FOREIGN KEY (`majorid`) REFERENCES `majors` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

创建 courses 表

CREATETABLE `courses` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(40) DEFAULT NULL,  `teacherid` int(11) DEFAULT NULL,  `beginyear` timestampNULL DEFAULT NULL,  `endyear` timestampNULL DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `teacherid` (`teacherid`),  CONSTRAINT `courses_ibfk_1` FOREIGN KEY (`teacherid`) REFERENCES `teachers` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;

创建 majors 表

CREATETABLE `majors` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(100) DEFAULT NULL,  `sdeptid` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `sdeptid` (`sdeptid`),  CONSTRAINT `majors_ibfk_1` FOREIGN KEY (`sdeptid`) REFERENCES `sdepts` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

创建 scores 表

CREATETABLE `scores` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `studentid` int(11) DEFAULT NULL,  `courseid` int(11) DEFAULT NULL,  `grade` double DEFAULT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `studentid` (`studentid`,`courseid`),  KEY `courseid` (`courseid`),  CONSTRAINT `scores_ibfk_1` FOREIGN KEY (`studentid`) REFERENCES `students` (`id`),  CONSTRAINT `scores_ibfk_2` FOREIGN KEY (`courseid`) REFERENCES `courses` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;

创建 sdepts 表

CREATETABLE `sdepts` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(40) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

创建 students 表

CREATETABLE `students` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(40) DEFAULT NULL,  `password` varchar(40) DEFAULT NULL,  `sdeptid` int(11) DEFAULT NULL,  `majorid` int(11) DEFAULT NULL,  `classid` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `sdeptid` (`sdeptid`),  KEY `majorid` (`majorid`),  KEY `classid` (`classid`),  CONSTRAINT `students_ibfk_1` FOREIGN KEY (`sdeptid`) REFERENCES `sdepts` (`id`),  CONSTRAINT `students_ibfk_2` FOREIGN KEY (`majorid`) REFERENCES `majors` (`id`),  CONSTRAINT `students_ibfk_3` FOREIGN KEY (`classid`) REFERENCES `classes` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2020020223 DEFAULT CHARSET=utf8;

创建 teachers 表

CREATETABLE `teachers` (  `id` int(11)NOTNULL AUTO_INCREMENT,  `name` varchar(40) DEFAULT NULL,  `password` varchar(100) DEFAULT NULL,  `sdeptid` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `sdeptid` (`sdeptid`),  CONSTRAINT `teachers_ibfk_1` FOREIGN KEY (`sdeptid`) REFERENCES `sdepts` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2020221 DEFAULT CHARSET=utf8;

创建 tokens 表

CREATETABLE `tokens` (  `token` varchar(120)NOTNULL,  `overtime` timestampNULL DEFAULT NULL,  `adminId` int(11) DEFAULT NULL,  `studentId` int(11) DEFAULT NULL,  `teacherId` int(11) DEFAULT NULL,  PRIMARY KEY (`token`),  KEY `adminId` (`adminId`),  KEY `studentId` (`studentId`),  KEY `teacherId` (`teacherId`),  CONSTRAINT `tokens_ibfk_1` FOREIGN KEY (`adminId`) REFERENCES `administrators` (`id`),  CONSTRAINT `tokens_ibfk_2` FOREIGN KEY (`studentId`) REFERENCES `students` (`id`),  CONSTRAINT `tokens_ibfk_3` FOREIGN KEY (`teacherId`) REFERENCES `teachers` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

配置文件

pom.xml 配置

<?xmlversion="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xxxx</groupId><artifactId>sams</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.7</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.8</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.8.2</version></dependency></dependencies><!--静态资源导出--><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build></project>

web.xml 配置

<?xmlversion="1.0" encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--配置前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:SpringMvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 此过滤器会进行:request.setCharactorEncoding("utf-8"); --><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--欢迎页面--><welcome-file-list><welcome-file>/WEB-INF/jsp/index.html</welcome-file></welcome-file-list><error-page><location>/WEB-INF/jsp/index.html</location></error-page></web-app>

spring-mvc.xml 配置

<?xmlversion="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><mvc:annotation-driven/><context:component-scanbase-package="controller"/><mvc:default-servlet-handler/><!-- 开启SpringMVC框架注解的支持 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp/"/><propertyname="suffix"value=".html"/></bean><mvc:annotation-driven><mvc:message-convertersregister-defaults="true"><!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 注解请求映射默认是ISO-88859-1,避免乱码这里设置为UTF-8 --><beanclass="org.springframework.http.converter.StringHttpMessageConverter"><propertyname="supportedMediaTypes"value="text/html;charset=UTF-8"/></bean><!-- 启动JSON格式的配置,自动将格式转换成JSON格式,不需要其他类 --><beanid="jacksonMessageConverter"class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><propertyname="supportedMediaTypes"value="application/json;charset=UTF-8"/></bean></mvc:message-converters></mvc:annotation-driven><!--  <mvc:resources mapping="/html/**" location="/pages/" />--></beans>

jdbc.properties 配置

url=jdbc:mysql://localhost:3306/sams?useUnicode=true&characterEncoding=utf-8
username=root
password=123456
driver=com.mysql.jdbc.Driver
initialSize=10
maxActive=30

项目结构

b9c4eb0d0c524d7b6eda50ab6f6e2b9b.png

目录
controller 控制层,负责处理业务模块流程的控制器
service 业务逻辑层,负责处理业务模块
dao 数据持久层, 负责与数据库进行交互
pojo 存放 JavaBean 类
utils 工具类,提供一些工具
resources 存放资源文件



项目下载地址:javaWeb项目学生成绩信息管理系统

Gitee 项目开源地址:Student Management System

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
4月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
6月前
|
SQL 前端开发 Java
JavaWeb 学习日记案例详解及 javaweb 完整项目案例实战指南
本文介绍了一个基于Spring Boot的JavaWeb企业员工管理系统完整案例,涵盖部门管理、员工管理、登录、异常处理、事务管理及AOP等核心功能实现,结合CSDN相关技术文章,提供详细技术方案与应用实例,适合JavaWeb开发者学习与参考。
358 0
|
存储 Java
【编程基础知识】 分析学生成绩:用Java二维数组存储与输出
本文介绍如何使用Java二维数组存储和处理多个学生的各科成绩,包括成绩的输入、存储及格式化输出,适合初学者实践Java基础知识。
314 1
|
12月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
239 4
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
927 37
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
Java 关系型数据库 MySQL
基于Java的学生成绩管理系统/学生信息管理系统
基于Java的学生成绩管理系统/学生信息管理系统
342 2
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
132 2
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
605 5
|
JSON JavaScript 前端开发
Javaweb中Vue指令的详细解析与应用
Vue指令提供了一种高效、声明式的编码方式,使得开发者可以更专注于数据和业务逻辑,而不是DOM操作的细节。通过熟练使用Vue指令,可以极大地提高开发效率和项目的可维护性。
123 3