从零开始搭建一个JavaSSM作业管理系统(一)

从零开始搭建一个JavaSSM作业管理系统系列

从零开始搭建一个JavaSSM作业管理系统(一)
从零开始搭建一个JavaSSM作业管理系统(二)
从零开始搭建一个JavaSSM作业管理系统(三)
从零开始搭建一个JavaSSM作业管理系统(四)

项目下载地址

说明!!!

1.本系列的文章仅展示搭建SSM作业管理系统的大致流程,文章中不会提供该项目的完整代码,如果需要完整代码可以在提供的链接中自行下载

2.本系列只展示作业管理系统一小部分功能实现(登录功能、管理员界面的学生信息管理功能),大部分功能都是信息的增删改查基本操作,重复度较多,大体步骤也都相同,故不做过多展示,请大家见谅

3.博主本人也算是spring框架的初学者,写此系列的目的旨在分享个人在学习SSM过程中的一些经验,如果大家在博客中发现代码或一些解释有误,还望多多指正

摘要

本文主要介绍搭建Java-SSM作业管理系统的第一个阶段

  1. 开发准备
  2. 项目设计

一、开发工具

  • Java代码相关:IDEA 2020
  • 数据库相关:Navicat,MySqlWorkBench
  • Web端调试:Chrome浏览器

二、系统角色权限

在搭建作业管理系统之前,首先要明确系统的主要角色
系统的三个角色为教师、学生、管理员
三个角色的主体权限如下(后续会加一些额外功能)

教师

  1. 修改个人信息(包括密码)
  2. 查看自己所教授的课程信息
  3. 查看选课学生信息
  4. 发布作业
  5. 修改已布置的作业
  6. 删除已布置的作业

学生

  1. 修改个人信息(包括密码)
  2. 查看自己所属的班级信息
  3. 查看自己所选的课程信息
  4. 查看教师所布置的作业信息
  5. 提交作业、修改已提交的作业

管理员

  1. 修改个人信息(包括密码)
  2. 教师信息的增删改查
  3. 学生信息的增删改查
  4. 班级信息的增删改查
  5. 课程信息的增删改查
  6. 选课信息的增删改查
  7. 作业信息的增删改查
  8. 删除作业信息、查看作业信息
  9. 删除学生提交作业信息、查看学生提交作业信息

三、数据库表结构设计

在明确了系统的主要角色及相对应的权限之后,下面我们来设计数据库的表结构

第一步-确定要设计的实体类及对应的关系

  • teacher-教师实体类
  • student-学生实体类
  • admin-管理员实体类
  • clazz-班级实体类
  • course-课程实体类
  • student_course-学生选课实体类
  • homework-作业实体类
  • student_homework-学生作业实体类

第二步-确定实体类对应的关系

  • teacher与student为多对多的关系,一个教师可以有多个学生,一个学生也可以有多个教师
  • teacher与course为一对多的关系(简化一下),一个教师可以教授多门课程,但一个课程只能对应一个教师
  • student与clazz为一对一的关系,一个学生只能属于一个班级
  • student与course为一对多的关系,一个学生可以上多门课程
  • course与homework为一对多的关系,一个课程可以有很多个作业
  • homework与student_homework为一对多的关系,一个作业可以有很多个学生提交

第三步-设计数据库表

数据库名称-school

  • teacher表
字段名字段类型字段描述
teacher_idINT(20)教师ID号
passwordVARCHAR(128)密码
teacher_nameVARCHAR(32)教师姓名
profile_imgVARCHAR(1024)头像地址
genderVARCHAR(4)性别
emailVARCHAR(1024)邮箱
teacher_descVARCHAR(1024)简介
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • student表
字段名字段类型字段描述
student_idINT(20)学生ID号
passwordVARCHAR(128)密码
student_nameVARCHAR(32)学生姓名
profile_imgVARCHAR(1024)头像地址
genderVARCHAR(4)性别
emailVARCHAR(1024)邮箱
student_descVARCHAR(1024)简介
clazz_idINT(20)班级ID号
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • admin表
字段名字段类型字段描述
admin_idINT(20)管理员ID号
passwordVARCHAR(128)密码
admin_nameVARCHAR(32)管理员姓名
profile_imgVARCHAR(1024)头像地址
genderVARCHAR(4)性别
emailVARCHAR(1024)邮箱
admin_descVARCHAR(1024)简介
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • clazz表(相当于class,这里写clazz是防止与java的class类重名)
字段名字段类型字段描述
clazz_idINT(20)班级ID号
clazz_numberINT(4)班级人数
clazz_descVARCHAR(1024)简介
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • course表
字段名字段类型字段描述
course_idINT(20)课程ID号
course_nameVARCHAR(128)课程名称
course_descVARCHAR(1024)简介
teacher_idINT(20)教师ID号
course_numberINT(4)课程容量
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • student_course表
字段名字段类型字段描述
student_course_idINT(20)学生选课ID号
course_idINT(20)课程ID号
student_idINT(20)学生ID号
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • homework表
字段名字段类型字段描述
homework_idINT(20)作业ID号
homework_nameVARCHAR(128)作业名称
homework_descVARCHAR(1024)作业详细要求
course_idINT(20)课程ID号
homework_fileVARCHAR(1024)作业要求文件
submit_timeVARCHAR(128)作业提交截至时间
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间
  • student_homework表
字段名字段类型字段描述
student_homework_idINT(20)学生作业ID号
homework_idINT(20)作业ID号
student_idINT(20)学生ID号
submit_contentVARCHAR(1024)作业提交内容
submit_fileVARCHAR(1024)作业提交文件
create_timeDATETIME(6)创建时间
last_edit_timeDATETIME(6)最近修改时间

第四步-创建数据库及表

在设计完数据库的表结构之后,下面便要开始创建数据库操作了

这里我使用的数据库是MySql 8,采用的可视化工具是Navicat

详细创建过程不一一列出了,这里贴上每个表的建表语句

  • teacher表
-- ----------------------------
-- Table structure for teacher
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher`  (
  `teacher_id` int(20) NOT NULL COMMENT '教师ID号',
  `password` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '12345' COMMENT '密码',
  `teacher_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '教师姓名',
  `profile_img` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像地址',
  `gender` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '性别',
  `email` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  `teacher_desc` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近修改时间',
  PRIMARY KEY (`teacher_id`) USING BTREE,
  UNIQUE INDEX `key_teacher_id`(`teacher_id`) USING BTREE COMMENT '设置teacher_id为唯一标识'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • student表
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `student_id` int(20) NOT NULL COMMENT '学生ID号',
  `password` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '12345' COMMENT '密码',
  `student_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学生姓名',
  `profile_img` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像地址',
  `gender` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '性别',
  `email` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  `student_desc` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',
  `clazz_id` int(20) NULL DEFAULT NULL COMMENT '班级ID号',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近一次修改时间',
  PRIMARY KEY (`student_id`) USING BTREE,
  UNIQUE INDEX `key_student_id`(`student_id`) USING BTREE COMMENT '设置student_id为唯一标识',
  INDEX `fk_student_clazz`(`clazz_id`) USING BTREE,
  CONSTRAINT `fk_student_clazz` FOREIGN KEY (`clazz_id`) REFERENCES `clazz` (`clazz_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • admin表
-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin`  (
  `admin_id` int(20) NOT NULL COMMENT '管理员ID号',
  `password` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '12345' COMMENT '密码',
  `admin_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员姓名',
  `profile_img` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像地址',
  `gender` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '性别',
  `email` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  `admin_desc` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近一次修改时间',
  PRIMARY KEY (`admin_id`) USING BTREE,
  UNIQUE INDEX `key_admin`(`admin_id`) USING BTREE COMMENT '设置admin_id为唯一标识'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • clazz表
-- ----------------------------
-- Table structure for clazz
-- ----------------------------
DROP TABLE IF EXISTS `clazz`;
CREATE TABLE `clazz`  (
  `clazz_id` int(20) NOT NULL COMMENT '班级ID号',
  `clazz_number` int(4) NOT NULL COMMENT '班级人数',
  `clazz_desc` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近修改时间',
  PRIMARY KEY (`clazz_id`) USING BTREE,
  UNIQUE INDEX `key_clazz_id`(`clazz_id`) USING BTREE COMMENT '设置clazz_id为唯一标识'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • course表
-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course`  (
  `course_id` int(20) NOT NULL AUTO_INCREMENT COMMENT '课程ID号',
  `course_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名称',
  `course_desc` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简介',
  `teacher_id` int(20) NOT NULL COMMENT '教师ID号',
  `course_number` int(4) NOT NULL COMMENT '课程容量',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近修改时间',
  PRIMARY KEY (`course_id`) USING BTREE,
  INDEX `fk_teacher_id`(`teacher_id`) USING BTREE,
  CONSTRAINT `fk_teacher_id` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`teacher_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • student_course表
-- ----------------------------
-- Table structure for student_course
-- ----------------------------
DROP TABLE IF EXISTS `student_course`;
CREATE TABLE `student_course`  (
  `student_course_id` int(20) NOT NULL AUTO_INCREMENT COMMENT '学生选课ID号',
  `course_id` int(20) NOT NULL COMMENT '课程ID号',
  `student_id` int(20) NOT NULL COMMENT '学生ID号',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近修改时间',
  PRIMARY KEY (`student_course_id`) USING BTREE,
  INDEX `fk_stc_course`(`course_id`) USING BTREE,
  INDEX `fk_stc_student`(`student_id`) USING BTREE,
  CONSTRAINT `fk_stc_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`course_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `fk_stc_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`student_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • homework表
-- ----------------------------
-- Table structure for homework
-- ----------------------------
DROP TABLE IF EXISTS `homework`;
CREATE TABLE `homework`  (
  `homework_id` int(20) NOT NULL AUTO_INCREMENT COMMENT '作业ID号',
  `homework_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '作业名称',
  `homework_desc` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作业详细要求',
  `course_id` int(20) NOT NULL COMMENT '课程ID号',
  `homework_file` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作业要求文件',
  `submit_time` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作业提交截至时间',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近修改时间',
  PRIMARY KEY (`homework_id`) USING BTREE,
  INDEX `fk_homework_course`(`course_id`) USING BTREE,
  CONSTRAINT `fk_homework_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`course_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  • student_homework表
-- ----------------------------
-- Table structure for student_homework
-- ----------------------------
DROP TABLE IF EXISTS `student_homework`;
CREATE TABLE `student_homework`  (
  `student_homework_id` int(20) NOT NULL AUTO_INCREMENT COMMENT '学生作业ID号',
  `homework_id` int(20) NOT NULL COMMENT '作业ID号',
  `student_id` int(20) NOT NULL COMMENT '学生ID号',
  `submit_content` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作业提交内容',
  `submit_file` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作业提交文件',
  `create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
  `last_edit_time` datetime(6) NULL DEFAULT NULL COMMENT '最近修改时间',
  PRIMARY KEY (`student_homework_id`) USING BTREE,
  INDEX `fk_sth_student`(`student_id`) USING BTREE,
  INDEX `fk_sth_homework`(`homework_id`) USING BTREE,
  CONSTRAINT `fk_sth_homework` FOREIGN KEY (`homework_id`) REFERENCES `homework` (`homework_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `fk_sth_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`student_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

四、搭建项目

打开IDEA,新建项目(此处我的IDEA使用的是最新版本,界面是真的好看^ — ^)
打开IDEA
这里我们选择maven项目,在模板里面找到maven-atchetype-webapp
创建maven项目1
给项目命名,这里的GroupId一般都是跟公司域名相关,也可以默认org.example,我这里填了我们学校的域名
创建maven项目2
点击finish,然后便是漫长的等待时间了(我第一次创建这个工程的时候加载了有半小时,以后创建加载速度便会越来越快了)
创建maven项目3
创建maven项目4
在创建好项目之后,可以看到项目目录结构如下:

  • pom.xml文件是maven的相关配置文件,我们可以将各种包的依赖写在这里面,maven便会自动下载相关依赖
  • webapp目录是存放静态资源(包括html、jsp、js、css等文件)和web.xml文件
  • web.xml文件主要对tomcat进行相关的配置
    项目目录层级
    我们在src/main目录下再建立两个文件夹:java、resources
  • src/main/java-存放java代码
  • src/main/resources-存放配置文件

再在src目录下建立test/java-该目录主要进行UT(Unit Test,即单元测试)测试

建好后的目录结构如下
建好后的目录结构
注意,如果建好之后的目录颜色或图标跟上图不同,需要手动将该目录修改为相应的根目录
标记目录
下面我们在src/main/webapp目录下新建一个resources文件夹,用来存放静态资源(js、css),再在src/main/webapp/WEB-INF目录下新建一个html文件夹,用来存放html文件
webapp目录结构
接下来我们对tomcat进行配置,点击“添加配置”
点击添加配置
找到Tomcat Server-local
找到Tomcat Server-local
这里我们按默认配置就可以,如果没有安装tomcat需要先上官网下载tomcat,这里我使用的是最常用的tomcat8.5版本
配置如下
点击部署,添加工件,这里我们添加war exploader
添加工件
添加war exploader
将配置名称删掉
将配置名称删掉
删除后
配置好之后点击‘应用’并返回,可以看到我们的运行程序多出来一个
配置完成
运行tomcat,跳出的界面如下,可以看到,tomcat是可以正常启动的
在这里插入图片描述
至此我们已经完成了项目的搭建,下面我们将对目录结构进行设计

五、目录结构设计

在项目的src/main/java目录下建立pakage如下
目录结构设计

  • dao-SpringMVC的数据持久层
  • service-SpringMVC的业务处理层
  • web-SpringMVC的控制层
  • dto-SpringMVC的数据传输对象层
  • entity-存放相关实体类
  • enums-存放实体类相关的枚举类
  • exception-存放实体类相关的异常类
  • util-存放用到的相关工具类

六、实体类设计

下面我们在entity包里面设计实体类,实体类里面字段的命名应遵循驼峰命名格式,并与数据库的字段名相对应,并为类里面每个变量生成getter和setter方法

  • 教师实体类
public class Teacher {
    //教师ID
    private Long teacherId;
    //密码
    private String password;
    //教师姓名
    private String teacherName;
    //头像路径
    private String profileImg;
    //性别
    private String gender;
    //邮箱
    private String email;
    //简介
    private String teacherDesc;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    public Long getTeacherId() { return teacherId; }

    public void setTeacherId(Long teacherId) {
        this.teacherId = teacherId;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getProfileImg() {
        return profileImg;
    }

    public void setProfileImg(String profileImg) {
        this.profileImg = profileImg;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTeacherDesc() {
        return teacherDesc;
    }

    public void setTeacherDesc(String teacherDesc) {
        this.teacherDesc = teacherDesc;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }
  • 学生实体类
public class Student {
    //学生ID
    private Long studentId;
    //密码
    private String password;
    //学生姓名
    private String studentName;
    //头像路径
    private String profileImg;
    //性别
    private String gender;
    //邮箱
    private String email;
    //简介
    private String studentDesc;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    //班级,表示该学生属于哪个班级
    private Clazz clazz;

    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public String getProfileImg() {
        return profileImg;
    }

    public void setProfileImg(String profileImg) {
        this.profileImg = profileImg;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getStudentDesc() {
        return studentDesc;
    }

    public void setStudentDesc(String studentDesc) {
        this.studentDesc = studentDesc;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }

    public Clazz getClazz() {
        return clazz;
    }

    public void setClazz(Clazz clazz) {
        this.clazz = clazz;
    }
}
  • 管理员实体类
public class Admin {
    //管理员ID
    private Long adminId;
    //密码
    private String password;
    //管理员姓名
    private String adminName;
    //头像路径
    private String profileImg;
    //性别
    private String gender;
    //邮箱
    private String email;
    //简介
    private String adminDesc;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    public Long getAdminId() {
        return adminId;
    }

    public void setAdminId(Long adminId) {
        this.adminId = adminId;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAdminName() {
        return adminName;
    }

    public void setAdminName(String adminName) {
        this.adminName = adminName;
    }

    public String getProfileImg() {
        return profileImg;
    }

    public void setProfileImg(String profileImg) {
        this.profileImg = profileImg;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAdminDesc() {
        return adminDesc;
    }

    public void setAdminDesc(String adminDesc) {
        this.adminDesc = adminDesc;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }
}
  • 班级实体类
public class Clazz {
    //班级ID
    private Long clazzId;
    //班级人数
    private Integer clazzNumber;
    //简介
    private String clazzDesc;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    public Long getClazzId() {
        return clazzId;
    }

    public void setClazzId(Long clazzId) {
        this.clazzId = clazzId;
    }

    public Integer getClazzNumber() {
        return clazzNumber;
    }

    public void setClazzNumber(Integer clazzNumber) {
        this.clazzNumber = clazzNumber;
    }

    public String getClazzDesc() {
        return clazzDesc;
    }

    public void setClazzDesc(String clazzDesc) {
        this.clazzDesc = clazzDesc;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }
}
  • 课程实体类
public class Course {
    //课程ID
    private Long courseId;
    //课程名称
    private String courseName;
    //简介
    private String courseDesc;
    //课程容量
    private Integer courseSize;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    //教师,表示该课程是哪个教师教授的
    private Teacher teacher;

    public Long getCourseId() {
        return courseId;
    }

    public void setCourseId(Long courseId) {
        this.courseId = courseId;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public String getCourseDesc() {
        return courseDesc;
    }

    public void setCourseDesc(String courseDesc) {
        this.courseDesc = courseDesc;
    }

    public Integer getCourseSize() {
        return courseSize;
    }

    public void setCourseSize(Integer courseSize) {
        this.courseSize = courseSize;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }

    public Teacher getTeacher() { return teacher; }

    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }
}
  • 学生选课实体类
public class StudentCourse {
    //学生选课ID
    private Long studentCourseId;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    //课程,表示选课的课程
    private Course course;
    //学生,表示选课的学生
    private Student student;

    public Long getStudentCourseId() {
        return studentCourseId;
    }

    public void setStudentCourseId(Long studentCourseId) {
        this.studentCourseId = studentCourseId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }

    public Course getCourse() {
        return course;
    }

    public void setCourse(Course course) {
        this.course = course;
    }

    public Student getStudent() {
        return student;
    }

    public void setStudent(Student student) {
        this.student = student;
    }
}
  • 作业实体类
public class Homework {
    //作业ID
    private Long homeworkId;
    //作业名称
    private String homeworkName;
    //作业详细要求
    private String homeworkDesc;
    //作业要求文件
    private String homeworkFile;
    //作业提交截至时间
    private String submitTime;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    //课程,表示该作业属于哪个课程下
    private Course course;

    public Long getHomeworkId() {
        return homeworkId;
    }

    public void setHomeworkId(Long homeworkId) {
        this.homeworkId = homeworkId;
    }

    public String getHomeworkName() {
        return homeworkName;
    }

    public void setHomeworkName(String homeworkName) {
        this.homeworkName = homeworkName;
    }

    public String getHomeworkDesc() {
        return homeworkDesc;
    }

    public void setHomeworkDesc(String homeworkDesc) {
        this.homeworkDesc = homeworkDesc;
    }

    public String getHomeworkFile() {
        return homeworkFile;
    }

    public void setHomeworkFile(String homeworkFile) {
        this.homeworkFile = homeworkFile;
    }

    public String getSubmitTime() {
        return submitTime;
    }

    public void setSubmitTime(String submitTime) {
        this.submitTime = submitTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }

    public Course getCourse() {
        return course;
    }

    public void setCourse(Course course) {
        this.course = course;
    }
}
  • 学生作业实体类
public class StudentHomework {
    //学生作业ID
    private Long studentHomeworkId;
    //作业提交内容
    private String submitContent;
    //作业提交文件
    private String submitFile;
    //创建时间
    private Date createTime;
    //更新时间
    private Date lastEditTime;

    //作业,表示学生提交的作业信息属于哪个作业类别下
    private Homework homework;
    //学生,表示提交的作业信息属于哪个学生
    private Student student;

    public Long getStudentHomeworkId() {
        return studentHomeworkId;
    }

    public void setStudentHomeworkId(Long studentHomeworkId) {
        this.studentHomeworkId = studentHomeworkId;
    }

    public String getSubmitContent() {
        return submitContent;
    }

    public void setSubmitContent(String submitContent) {
        this.submitContent = submitContent;
    }

    public String getSubmitFile() {
        return submitFile;
    }

    public void setSubmitFile(String submitFile) {
        this.submitFile = submitFile;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastEditTime() {
        return lastEditTime;
    }

    public void setLastEditTime(Date lastEditTime) {
        this.lastEditTime = lastEditTime;
    }

    public Homework getHomework() {
        return homework;
    }

    public void setHomework(Homework homework) {
        this.homework = homework;
    }

    public Student getStudent() {
        return student;
    }

    public void setStudent(Student student) {
        this.student = student;
    }
}

七、补充

我们在定义实体类时,当我们写好变量名之后,可以用IDEA自动生成getter和setter方法的

快捷键(Windows:Alt+Insert)
生成getter和setter方法

八、总结

至此,我们已经完成写一个JavaSSM作业管理系统的第一步——项目设计,下一步我们将完成框架搭建和配置验证部分

下一篇:从零开始写一个JavaSSM作业管理系统(二)

  • 16
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值