这个项目是一个简单的教务查询系统,该练手小项目希望能帮助到大家,熟悉SSM的整合开发
IOC容器:Spring
Web框架:SpringMVC
ORM框架:Mybatis
安全框架:Shiro
数据源:C3P0
日志:log4j
前端框架:Bootstrap
∙ 编译器:eclipse
∙ 项目构建工具:Maven
∙ 数据库:Mysql
∙ JDK版本:jdk1.8
∙ Tomcat版本:Tomcat8.x
∙ 在你的Mysql中,创建一个数据库名称为 examination_system 的数据库,并导入我提供的 .sql 文件,
∙ 进入src/main/resources修改mysql.properties配置文件,把数据库登录名和密码,改为你本地的
∙ 使用 eclipse 导入项目,选择Maven项目选项,一路点击next就行,导入项目后,如果src目录等,都没显示出来,别急先使用Maven构建该项目
∙ 在 eclipse 中,配置我们的 Tomcat, 然后把使用Maven构建好的项目添加到Tomcat中
∙ 运行
∙
登录账户
∙ 管理员账户:admin
∙ 老师账户:1001
∙ 学生账户:10001
∙ 密码均为:123
使用Shiro权限管理框架,实现登录验证和登录信息的储存,根据不同的登录账户,分发权限角色,对不同页面url进行角色设置
用户、角色、菜单、用户与角色关系、角色与菜单的关系
用户:用户ID、用户名、密码、角色
角色:角色ID、角色名、权限
教师:ID、姓名、性别、出生日期、学历、职称、入职时间、院系
学生:ID、姓名、性别、出生日期、入学时间、院系
院系:ID、院系名称
课程: ID、课程名称、开课老师、开课时间、开课地点、学时、课程类型、所属院系、学分
CREATE TABLE `userlogin` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`password` varchar(200) NOT NULL,
`role` int(11) NOT NULL DEFAULT '2' COMMENT '角色权限',
PRIMARY KEY (`userID`),
KEY `role` (`role`),
CONSTRAINT `userlogin_ibfk_1` FOREIGN KEY (`role`) REFERENCES `role` (`roleID`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
InnoDB 是MySQL的数据库引擎之一,是一套放在 MySQL 后台的完整数据库系统
AUTO_INCREMENT=1 自增键的起始序号为17
DEFAULT CHARSET=utf8 数据库默认编码为utf-8
-- ----------------------------
-- Records of userlogin
-- ----------------------------
INSERT INTO `userlogin` VALUES ('1', 'admin', '123', '0');
INSERT INTO `userlogin` VALUES ('8', '10001', '123', '2');
INSERT INTO `userlogin` VALUES ('9', '10002', '123', '2');
INSERT INTO `userlogin` VALUES ('10', '10003', '123', '2');
INSERT INTO `userlogin` VALUES ('11', '10005', '123', '2');
INSERT INTO `userlogin` VALUES ('12', '10004', '123', '2');
INSERT INTO `userlogin` VALUES ('13', '10006', '123', '2');
INSERT INTO `userlogin` VALUES ('14', '1001', '123', '1');
INSERT INTO `userlogin` VALUES ('15', '1002', '123', '1');
INSERT INTO `userlogin` VALUES ('16', '1003', '123', '1');
CREATE TABLE `role` (
`roleID` int(11) NOT NULL,
`roleName` varchar(20) NOT NULL,
`permissions` varchar(255) DEFAULT NULL COMMENT '权限',
PRIMARY KEY (`roleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES ('0', 'admin', null);
INSERT INTO `role` VALUES ('1', 'teacher', null);
INSERT INTO `role` VALUES ('2', 'student', null);
CREATE TABLE `teacher` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`birthYear` date NOT NULL,
`degree` varchar(20) DEFAULT NULL COMMENT '学历',
`title` varchar(255) DEFAULT NULL COMMENT '职称',
`grade` date DEFAULT NULL COMMENT '入职时间',
`collegeID` int(11) NOT NULL COMMENT '院系',
PRIMARY KEY (`userID`),
KEY `collegeID` (`collegeID`),
CONSTRAINT `teacher_ibfk_1` FOREIGN KEY (`collegeID`) REFERENCES `college` (`collegeID`)
) ENGINE=InnoDB AUTO_INCREMENT=1004 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of teacher
-- ----------------------------
INSERT INTO `teacher` VALUES ('1001', '刘老师', '女', '1990-03-08', '硕士', '副教授', '2015-09-02', '2');
INSERT INTO `teacher` VALUES ('1002', '张老师', '男', '1996-09-02', '本科', '普通教师', '2015-09-02', '1');
INSERT INTO `teacher` VALUES ('1003', '软老师', '男', '1996-09-02', '硕士', '助教', '2017-07-07', '1');
CREATE TABLE `student` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`birthYear` date DEFAULT NULL COMMENT '出生日期',
`grade` date DEFAULT NULL COMMENT '入学时间',
`collegeID` int(11) NOT NULL COMMENT '院系id',
PRIMARY KEY (`userID`),
KEY `collegeID` (`collegeID`),
CONSTRAINT `student_ibfk_1` FOREIGN KEY (`collegeID`) REFERENCES `college` (`collegeID`)
) ENGINE=InnoDB AUTO_INCREMENT=10007 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('10001', '小黄', '男', '1996-09-02', '2015-09-02', '1');
INSERT INTO `student` VALUES ('10002', '小米', '女', '1995-09-14', '2015-09-02', '3');
INSERT INTO `student` VALUES ('10003', '小陈', '女', '1996-09-02', '2015-09-02', '2');
INSERT INTO `student` VALUES ('10004', '小华', '男', '1996-09-02', '2015-09-02', '2');
INSERT INTO `student` VALUES ('10005', '小左', '女', '1996-09-02', '2015-09-02', '2');
INSERT INTO `student` VALUES ('10006', '小拉', '女', '1996-09-02', '2015-09-02', '1');
CREATE TABLE `college` (
`collegeID` int(11) NOT NULL,
`collegeName` varchar(200) NOT NULL COMMENT '院系名称',
PRIMARY KEY (`collegeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `college` VALUES ('1', '计算机系');
INSERT INTO `college` VALUES ('2', '设计系');
INSERT INTO `college` VALUES ('3', '财经系');
CREATE TABLE `course` (
`courseID` int(11) NOT NULL,
`courseName` varchar(200) NOT NULL COMMENT '课程名称',
`teacherID` int(11) NOT NULL,
`courseTime` varchar(200) DEFAULT NULL COMMENT '开课时间',
`classRoom` varchar(200) DEFAULT NULL COMMENT '开课地点',
`courseWeek` int(200) DEFAULT NULL COMMENT '学时',
`courseType` varchar(20) DEFAULT NULL COMMENT '课程类型',
`collegeID` int(11) NOT NULL COMMENT '所属院系',
`score` int(11) NOT NULL COMMENT '学分',
PRIMARY KEY (`courseID`),
KEY `collegeID` (`collegeID`),
KEY `teacherID` (`teacherID`),
CONSTRAINT `course_ibfk_1` FOREIGN KEY (`collegeID`) REFERENCES `college` (`collegeID`),
CONSTRAINT `course_ibfk_2` FOREIGN KEY (`teacherID`) REFERENCES `teacher` (`userID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `course` VALUES ('1', 'C语言程序设计', '1001', '周二', '科401', '18', '必修课', '1', '3');
INSERT INTO `course` VALUES ('2', 'Python爬虫技巧', '1001', '周四', 'X402', '18', '必修课', '1', '3');
INSERT INTO `course` VALUES ('3', '数据结构', '1001', '周四', '科401', '18', '必修课', '1', '2');
INSERT INTO `course` VALUES ('4', 'Java程序设计', '1002', '周五', '科401', '18', '必修课', '1', '2');
INSERT INTO `course` VALUES ('5', '英语', '1002', '周四', 'X302', '18', '必修课', '2', '2');
INSERT INTO `course` VALUES ('6', '服装设计', '1003', '周一', '科401', '18', '选修课', '2', '2');
CREATE TABLE `selectedcourse` (
`courseID` int(11) NOT NULL,
`studentID` int(11) NOT NULL,
`mark` int(11) DEFAULT NULL COMMENT '成绩',
KEY `courseID` (`courseID`),
KEY `studentID` (`studentID`),
CONSTRAINT `selectedcourse_ibfk_1` FOREIGN KEY (`courseID`) REFERENCES `course` (`courseID`),
CONSTRAINT `selectedcourse_ibfk_2` FOREIGN KEY (`studentID`) REFERENCES `student` (`userID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of selectedcourse
-- ----------------------------
INSERT INTO `selectedcourse` VALUES ('2', '10001', '12');
INSERT INTO `selectedcourse` VALUES ('1', '10001', '95');
INSERT INTO `selectedcourse` VALUES ('1', '10002', '66');
INSERT INTO `selectedcourse` VALUES ('1', '10003', null);
INSERT INTO `selectedcourse` VALUES ('2', '10003', '99');
INSERT INTO `selectedcourse` VALUES ('5', '10001', null);
INSERT INTO `selectedcourse` VALUES ('3', '10001', null);
管理员可对 教师信息、学生信息、课程信息 进行 增删改查 操作,管理员账户,可以重置非管理员账户的密码
∙ 课程管理:当课程已经有学生选课成功时,将不能删除
∙ 学生管理:添加学生信息时,其信息也会添加到登录表中
∙ 教师管理:同上
∙ 账户密码重置:
∙ 修改密码:
∙
∙
∙
教师登陆后,可以获取其,教授的课程列表,并可以给已经选择该课程的同学打分,无法对已经给完分的同学进行二次操作
∙ 我的课程
∙ 修改密码
∙
∙
∙
学生登录后,根据学生信息,获取其已经选择的课程,和已经修完的课程
∙ 所有课程: 在这里选修课程,选好后,将会自动跳转到已选课程选项
∙ 已选课程: 这里显示的是,还没修完的课程,也就是老师还没给成绩,由于还没有给成绩,所以这里可以进行退课操作
∙ 已修课程: 显示已经修完,老师已经给成绩的课程
∙ 修改密码:
∙
∙
∙
本文来源:https://www.2haoxitong.net/k/doc/0cfec5eaa48da0116c175f0e7cd184254a351b50.html
文档为doc格式