👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
基于springboot的驾校预约管理系统5拥有三种角色:管理员、教练、学员
管理员:学员管理、教练管理、车辆管理、车辆关联、维修管理等
教练:学员查看/毕业、添加课程、维修申请等
学员:预约选课,取消预约、练车记录、个人中心
1.1 背景描述
驾校管理系统是一种针对驾校和驾驶培训中心设计的软件系统,旨在改善和简化驾校的日常运营和管理。该系统通常包括学员信息管理、课程安排、教练员分配、车辆管理、费用结算、学车进度跟踪等功能。通过这些功能,驾校管理系统能够帮助管理者更有效地组织和监督学员的学习进度,合理安排课程时间和资源,并提供教练员和学员之间的有效沟通渠道。此外,系统还可以简化报名流程、考试预约及成绩录入,帮助学员轻松管理自己的学车过程。随着技术的发展,一些驾校管理系统还整合了在线学习和模拟考试等功能,使学车更加便捷高效。通过使用驾校管理系统,驾校和培训中心可以提升管理效率,优化资源利用,同时为学员提供更好的学车体验。
2、项目技术
后端框架:Mybatis、springboot
前端技术:Bootstrap、html、css、JavaScript、JQuery
2.1 springboot
Spring Boot是由Pivotal团队提供的基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot集成了绝大部分目前流行的开发框架,就像Maven集成了所有的JAR包一样,Spring Boot集成了几乎所有的框架,使得开发者能快速搭建Spring项目。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
- JAVA版本:JDK1.8
- IDE类型:IDEA、Eclipse都可运行
- tomcat版本:不需要
- 数据库类型:MySql(5.5-5.7、8.x版本都可)
- maven版本:无限制
- 硬件环境:Windows
4、功能截图+视频演示+文档目录
4.1 登录
4.2 管理员模块
4.3 教练模块
4.4学员模块
5 、核心代码实现
5.1 配置代码
server:
servlet:
context-path: /
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/car-school?useUnicode=true&characterEncoding=utf-8&useSSL=false&tcpRcvBuf=1024000&autoReconnect=true&failOverReadOnly=false&connectTimeout=0&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
userName: root
password: root
driverClassName : com.mysql.cj.jdbc.Driver
redis:
host: 127.0.0.1
port: 6379
password:
timeout: 120000
readTimeout: 120000
database: 5
jedis:
pool:
min-idle: 8
max-idle: 500
max-active: 2000
max-wait: 60000
locationTemp: /Users/singer/data #上传文件的临时目录
mvc:
view:
prefix: /WEB-INF/
suffix: .jsp
web:
resources:
static-locations: classpath:webapp/
mybatis:
mapper-locations: classpath:mapper/*.xml # mapper映射文件位置
type-aliases-package: com.singulee.carschool.pojo # 实体类所在的位置
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapUnderscoreToCamelCase: true
5.2 SQL脚本
/*
Navicat Premium Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 50718
Source Host : localhost:3306
Source Schema : car-school
Target Server Type : MySQL
Target Server Version : 50718
File Encoding : 65001
Date: 06/04/2022 15:57:01
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for cart
-- ----------------------------
DROP TABLE IF EXISTS `cart`;
CREATE TABLE `cart` (
`carId` int(11) NOT NULL AUTO_INCREMENT COMMENT '车辆id 主键',
`carNumber` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '车牌',
`carDriverClass` int(11) NULL DEFAULT NULL COMMENT '驾驶证类型',
`staute` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '当前状态 维修 正常 报废 备用 ',
`cartStartDate` date NULL DEFAULT NULL COMMENT '购入时间',
`carEndDate` date NULL DEFAULT NULL COMMENT '结束时间',
`extend2` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`carId`) USING BTREE,
INDEX `cart_driver`(`carDriverClass`) USING BTREE,
CONSTRAINT `cart_ibfk_1` FOREIGN KEY (`carDriverClass`) REFERENCES `driver` (`driverId`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '������Ϣ' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of cart
-- ----------------------------
INSERT INTO `cart` VALUES (1, '渝A00001', 1, '正常', '2022-03-09', NULL, NULL);
INSERT INTO `cart` VALUES (2, '渝A12345', 2, '正常', '2022-02-19', NULL, NULL);
INSERT INTO `cart` VALUES (3, '渝C66666', 3, '正常', '2022-03-02', NULL, NULL);
INSERT INTO `cart` VALUES (4, '渝B33333', 7, '正常', '2022-03-01', NULL, NULL);
INSERT INTO `cart` VALUES (5, '渝A88888', 6, '备用', '2022-01-31', NULL, NULL);
INSERT INTO `cart` VALUES (6, '渝A99999', 1, '正常', '2022-02-18', NULL, NULL);
INSERT INTO `cart` VALUES (7, '渝A66666', 1, '正常', '2020-06-10', NULL, NULL);
INSERT INTO `cart` VALUES (8, '渝F99999', 1, '正常', '2016-07-14', NULL, NULL);
INSERT INTO `cart` VALUES (9, '京A12345', 7, '备用', '2019-05-13', NULL, NULL);
INSERT INTO `cart` VALUES (10, '渝A666888', 6, '备用', '2022-03-10', NULL, NULL);
INSERT INTO `cart` VALUES (11, '渝A00002', 7, '备用', '2022-03-10', NULL, NULL);
INSERT INTO `cart` VALUES (12, '渝A00003', 1, '正常', '2022-03-10', NULL, NULL);
-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`courseId` int(11) NOT NULL AUTO_INCREMENT COMMENT '课程 id主键',
`courseName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程名称 第N节课 ',
`courseBegin` time NULL DEFAULT NULL COMMENT '开始时间',
`courseEnd` time NULL DEFAULT NULL COMMENT '结束时间',
PRIMARY KEY (`courseId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '课程安排时间' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES (1, '第一节', '07:20:00', '08:00:00');
INSERT INTO `course` VALUES (2, '第二节', '08:10:00', '08:40:00');
INSERT INTO `course` VALUES (3, '第三节', '08:50:00', '09:30:00');
INSERT INTO `course` VALUES (4, '第四节', '09:40:00', '10:20:00');
INSERT INTO `course` VALUES (5, '第五节', '10:30:00', '11:10:00');
INSERT INTO `course` VALUES (6, '第六节', '11:20:00', '12:10:00');
INSERT INTO `course` VALUES (7, '第七节', '12:20:00', '13:00:00');
INSERT INTO `course` VALUES (8, '第八节', '13:10:00', '13:50:00');
INSERT INTO `course` VALUES (9, '第九节', '14:00:00', '14:40:00');
INSERT INTO `course` VALUES (10, '第十节', '14:50:00', '15:30:00');
INSERT INTO `course` VALUES (11, '第十一节', '15:40:00', '16:20:20');
INSERT INTO `course` VALUES (12, '第十二节', '16:30:30', '17:10:00');
INSERT INTO `course` VALUES (13, '第十三节', '17:20:00', '18:00:00');
INSERT INTO `course` VALUES (14, '第十四节', '18:10:00', '18:40:00');
INSERT INTO `course` VALUES (15, '第十五节', '18:50:00', '19:30:00');
INSERT INTO `course` VALUES (16, '第十六节', '19:40:00', '20:20:00');
INSERT INTO `course` VALUES (17, '第十七节', '20:30:30', '21:10:00');
INSERT INTO `course` VALUES (18, '第十八节', '21:20:00', '22:00:00');
INSERT INTO `course` VALUES (19, '第十九节', '22:10:00', '22:40:00');
INSERT INTO `course` VALUES (20, '第二十节', '22:50:00', '23:30:00');
-- ----------------------------
-- Table structure for detail
-- ----------------------------
DROP TABLE IF EXISTS `detail`;
CREATE TABLE `detail` (
`detailId` int(11) NOT NULL AUTO_INCREMENT COMMENT '课程详情ID',
`courseId` int(11) NULL DEFAULT NULL COMMENT '课程安排id 外键',
`relationshipId` int(11) NULL DEFAULT NULL COMMENT '关系表 外键',
`stuSta` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态 0未预约 1 已预约',
`courseDate` date NULL DEFAULT NULL COMMENT '课程日期',
`extend1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程类类型 ',
`extend2` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程状态 0 草稿 1 发布',
PRIMARY KEY (`detailId`) USING BTREE,
INDEX `course_id`(`courseId`) USING BTREE,
INDEX `tea_id`(`relationshipId`) USING BTREE,
CONSTRAINT `detail_ibfk_1` FOREIGN KEY (`courseId`) REFERENCES `course` (`courseId`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `detail_ibfk_2` FOREIGN KEY (`relationshipId`) REFERENCES `relationship` (`relationshipId`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 366 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '课程安排表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of detail
-- ----------------------------
INSERT INTO `detail` VALUES (106, 1, 8, '0', '2019-04-13', '科目二基础', '1');
INSERT INTO `detail` VALUES (107, 2, 8, '1', '2019-04-13', '科目二基础', '1');
INSERT INTO `detail` VALUES (108, 3, 8, '0', '2019-04-13', '科目二基础', '1');
INSERT INTO `detail` VALUES (109, 4, 8, '0', '2019-04-13', '科目二基础', '1');
INSERT INTO `detail` VALUES (110, 5, 8, '1', '2019-04-13', '科目二基础', '1');
INSERT INTO `detail` VALUES (111, 13, 8, '0', '2019-04-13', '科目二', '1');
INSERT INTO `detail` VALUES (112, 14, 8, '0', '2019-04-13', '科目二', '1');
INSERT INTO `detail` VALUES (113, 15, 8, '0', '2019-04-13', '科目二', '1');
INSERT INTO `detail` VALUES (114, 16, 8, '0', '2019-04-13', '科目二', '1');
INSERT INTO `detail` VALUES (115, 17, 8, '0', '2019-04-13', '科目二', '1');
INSERT INTO `detail` VALUES (116, 9, 8, '0', '2019-04-13', '科目三', '1');
INSERT INTO `detail` VALUES (117, 10, 8, '0', '2019-04-13', '科目三', '1');
INSERT INTO `detail` VALUES (118, 11, 8, '1', '2019-04-13', '科目三', '1');
INSERT INTO `detail` VALUES (119, 2, 8, '1', '2019-04-14', '科目二基础', '1');
INSERT INTO `detail` VALUES (120, 4, 8, '0', '2019-04-14', '科目二基础', '2');
INSERT INTO `detail` VALUES (121, 17, 8, '0', '2019-04-14', '科目二基础', '1');
INSERT INTO `detail` VALUES (122, 18, 8, '0', '2019-04-14', '科目二基础', '2');
INSERT INTO `detail` VALUES (123, 20, 8, '0', '2019-04-14', '科目二基础', '2');
INSERT INTO `detail` VALUES (124, 7, 8, '0',