目前由于springboot框架开发是当前工作中开发框架的主流,所以在休息时间搭建和撸一个以springboot框架开发的一个系统,详情如下,希望大家能够见解和学习
springboot项目必须要有maven环境,这个是前提,项目所用到的jar包都用maven来管理。
怎么安装maven环境,可以参考以下:
http://www.myzshare.cn/resource_detail?id=126&res_name=%E5%82%BB%E7%93%9C%E5%BC%8F%E6%95%99%E4%BD%A0%E5%AE%89%E8%A3%85maven%E4%BB%A5%E5%8F%8AEclipse%E6%90%AD%E5%BB%BAmaven%E7%8E%AF%E5%A2%83
然后数据库是采用mysql数据库,
CREATE TABLE `job` (
`ID` int(20) NOT NULL AUTO_INCREMENT COMMENT '自增长id',
`teachclassid` int(20) NOT NULL COMMENT '所选课程,外键',
`no` int(20) DEFAULT NULL COMMENT '序号,每个学生的实验报告文件名默认格式为学号项目实验X。X为序号',
`title` varchar(20) DEFAULT NULL COMMENT '序号',
`duedate` char(10) DEFAULT NULL COMMENT '报告提交截止日期',
`type` int(20) DEFAULT NULL COMMENT '作业类型。1-实验;2-作业',
`note` varchar(255) DEFAULT NULL,
`createTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`jobID` int(20) NOT NULL COMMENT '外键',
`studentno` varchar(20) NOT NULL,
`score` int(5) DEFAULT NULL,
`time` datetime DEFAULT NULL COMMENT '可以用来区分不同类型作业信息。如实验,可以填入提交时间',
`note` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `uniq_job` (`jobID`,`studentno`),
CONSTRAINT `fk_jobid` FOREIGN KEY (`jobID`) REFERENCES `job` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`studentno` varchar(20) NOT NULL,
`name` varchar(8) DEFAULT NULL,
`pinyin` varchar(20) DEFAULT NULL COMMENT '姓名的拼音,防止不认识生僻字',
`password` varchar(20) DEFAULT NULL,
PRIMARY KEY (`studentno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for studentclass
-- ----------------------------
DROP TABLE IF EXISTS `studentclass`;
CREATE TABLE `studentclass` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`no` int(11) NOT NULL COMMENT '花名册上的序号,排序用',
`classID` int(11) NOT NULL COMMENT '学生所在的教学班号,外键',
`studentno` varchar(20) NOT NULL COMMENT '学号',
`note` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `uk_studentclass_noid` (`studentno`,`classID`),
KEY `fkey_classid` (`classID`),
CONSTRAINT `fkey_classid` FOREIGN KEY (`classID`) REFERENCES `teachclass` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fkey_studentno` FOREIGN KEY (`studentno`) REFERENCES `student` (`studentno`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=874 DEFAULT CHARSET=utf8 COMMENT='学生和教学班号的连接表\r\n';
-- ----------------------------
-- Table structure for teachclass
-- ----------------------------
DROP TABLE IF EXISTS `teachclass`;
CREATE TABLE `teachclass` (
`teachclassno` varchar(20) NOT NULL,
`coursename` varchar(100) DEFAULT NULL,
`coursesemester` char(11) NOT NULL,
`credit` tinyint(4) DEFAULT NULL,
`evalmethod` char(4) DEFAULT NULL,
`teacherno` varchar(20) DEFAULT NULL,
`ID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `uniclassno` (`teachclassno`,`coursesemester`),
KEY `teacherid` (`teacherno`),
CONSTRAINT `teacherid` FOREIGN KEY (`teacherno`) REFERENCES `teacher` (`teacherno`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
系统功能
分为教师,学生两类用户,每一角色具有不同的功能权限。
教师功能权限:信息管理,课程管理,以及作业管理三大类,每一个大类又有很多小类功能
学生功能权限:个人基本信息,课程管理,以及作业提交管理,每一个大类又有很多小类功能