springboot+mybatis 学生成绩管理系统

学生成绩管理系统

github地址

数据库设计

使用数据库为scoreDB

班级信息表class
字段名 描述 数据类型 约束
classNo 班级编号 char(10) primary key
className 班级名称 varchar(20) not null
institute 所属学院 varchar(20) not null
grade 年级 int not null
classNum 班级人数 int not null
学生信息表student
字段名 描述 数据类型 约束
stuNo 学号 char(10) primary key
stuName 姓名 varchar(20) not null
sex 性别 int not null
birthday 出生日期 date not null
nat 民族 varchar(20) not null
classNo 所属班级 varchar(20) not null
课程信息表course
字段名 属性 数据类型 约束
courseNo 课程号 char(10) primary key
courseName 课程名 varchar(20) not null
credit 学分 int not null
courseHour 课时数 int not null
priorCourse 先修课程 varchar(20) not null
成绩表score
字段名 属性 数据类型 约束
stuNo 学号 char(10) primary key
courseNo 课程号 char(10) primary key
term 开课学期 char(10) not null
score 成绩 int not null
账号表account
字段名 描述 数据类型 约束
id 用户id int primary key ,auto_increament
username 用户名 varchar(20) not null
password 密码 varchar(20) not null
authority 用户权限 int not null
详细建表sql
use scoreDB;

/*  删除数据库中所有的表 */
SELECT concat('DROP TABLE IF EXISTS' , table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'scoreDB';


/* 班级信息表class */
drop table IF EXISTS class;
 CREATE TABLE class(
    classNo CHAR(10) PRIMARY KEY ,
    className VARCHAR (20) NOT NULL,
    institute VARCHAR (20) NOT NULL,
    grade INT NOT NULL,
    classNum INT NOT NULL
 );

/*  插入班级信息 */
INSERT INTO class (classNo, className, institute, grade, classNum) VALUES
                          ('20011', '通信201','通信学院',1, 1);

 /* 学生信息表student */
 /* sex:0-未知 1-男 2-女 */
drop table IF EXISTS student;
CREATE TABLE student(
    stuNo CHAR(10) PRIMARY KEY,
    stuName VARCHAR (20) NOT NULL,
    sex INT NOT NULL,
    birthday DATE NOT NULL,
    nat VARCHAR(20) NOT NULL,
    classNo VARCHAR (20) NOT NULL
);

/*  插入学生信息 */
INSERT INTO student (stuNo, stuName, sex, birthday, nat, classNo) VALUES
                          ('20066','王兰花',2,'2000-01-01','汉族','20011');
INSERT INTO student (stuNo, stuName, sex, birthday, nat, classNo) VALUES
                          ('20068','李子豪',1,'2000-06-06','汉族','20011');
INSERT INTO student (stuNo, stuName, sex, birthday, nat, classNo) VALUES
                          ('20088','苏梅',2,'2000-02-12','汉族','20011');

/*  重新计算班级人数 */
UPDATE class SET classNum = (select count(*) from  student where classNo='20011')
                            where classNo='20011';



/*  课程信息表course */
drop TABLE  IF EXISTS course;
CREATE TABLE course(
    courseNo CHAR(10) PRIMARY KEY,
    courseName VARCHAR (20) NOT NULL,
    credit INT NOT NULL,
    courseHour INT NOT NULL,
    priorCourse VARCHAR (20) NOT NULL
);

/*  插入课程信息 */
INSERT INTO course (courseNo, courseName, credit, courseHour, priorCourse) VALUES
                    ('ke-001','高等数学',4, 60, 'null');
INSERT INTO course (courseNo, courseName, credit, courseHour, priorCourse) VALUES
                    ('ke-002','线性代数',4, 60, 'null');
INSERT INTO course (courseNo, courseName, credit, courseHour, priorCourse) VALUES
                    ('ke-003','通信原理',4, 60, '高等数学');
INSERT INTO course (courseNo, courseName, credit, courseHour, priorCourse) VALUES
                    ('ke-004','电子技术基础',4, 60, '高等数学');
INSERT INTO course (courseNo, courseName, credit, courseHour, priorCourse) VALUES
                    ('ke-005','电工学',4, 60, '高等数学');
INSERT INTO course (courseNo, courseName, credit, courseHour, priorCourse) VALUES
                    ('ke-006','自动控制原理',4, 60, '高等数学');

/*  成绩表score */
drop TABLE  IF EXISTS score;
CREATE TABLE score(
    stuNo CHAR(10) ,
    courseNo CHAR(10) ,
    term VARCHAR (10) NOT NULL,
    score INT NOT NULL,
    PRIMARY KEY (stuNo, courseNo)
);

/*  插入成绩信息 */
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20066', 'ke-001', '2020年春季学期', 80);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20066', 'ke-002', '2020年春季学期', 88);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20066', 'ke-003', '2020年春季学期', 88);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20066', 'ke-004', '2020年春季学期', 88);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20066', 'ke-005', '2020年春季学期', 88);
                  INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20066', 'ke-006', '2020年春季学期', 88);


INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20068', 'ke-001', '2020年春季学期', 60);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20068', 'ke-002', '2020年春季学期', 68);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20068', 'ke-003', '2020年春季学期', 68);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20068', 'ke-004', '2020年春季学期', 68);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20068', 'ke-005', '2020年春季学期', 68);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20068', 'ke-006', '2020年春季学期', 68);

INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20088', 'ke-001', '2020年春季学期', 90);
INSERT INTO score (stuNo, courseNo, term, score) VALUES
                  ('20088', 'ke-002', '2020年春季学期', 98
Spring Boot是一个基于Java的开发框架,它简化了Java应用程序的开发过程,并提供了很多常用的功能和组件。MyBatis是一个持久化框架,它可以帮助我们更方便地与数据库交互。 学生成绩管理系统是一个常见的应用,可以通过Spring Boot和MyBatis来实现。 首先,我们可以使用Spring Boot的快速启动器来创建一个新的项目,这样我们就能够快速搭建一个基础的开发框架。我们可以使用Maven或Gradle来管理项目依赖的包。 接下来,我们需要创建数据库表来存储学生的成绩信息。可以使用MyBatis的注解或XML配置来定义数据库表与Java对象的映射关系,并编写相应的SQL语句来创建表和操作数据。 然后,我们可以编写Controller来处理HTTP请求,并调用Service层的方法来处理业务逻辑。Service层负责与数据库交互,可以使用MyBatis提供的API来操作数据库。 在Controller中,我们可以定义不同的路由来处理不同的请求,比如添加学生成绩、查询学生成绩、更新学生成绩等操作。在处理请求时,我们可以调用Service层的方法来处理具体业务逻辑,并返回相应的结果给前端。 最后,我们可以使用Thymeleaf或其他前端框架来实现前端页面展示。通过在Controller中返回相应的数据,前端可以获取并展示学生的成绩信息。 总结来说,通过使用Spring Boot和MyBatis,我们可以快速搭建一个学生成绩管理系统。Spring Boot简化了开发过程,MyBatis提供了方便的数据库操作功能。通过控制器、服务层和数据库层的结合,我们能够实现学生成绩的增删改查等操作,从而实现一个完整的成绩管理系统。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值