从0到100:基于Java的大学选修课选课小程序开发笔记(上)
背景
为学生提供便捷的课程选择方式,并帮助学校进行课程管理和资源调配;主要功能包括:课程展示,自主选课,取消选课,后台录入课程,统计每门课程报名情况,导出数据,用户管理,管理员管理等。
- 用户角色:查看课程详情(课程大纲、授课方式、考核方式、学分等信息)、在特定的时间窗口内开放选课,用户可以在规定时间内自由选课
- 管理员角色:发布选修课程信息,包括课程内容、时间安排、教学大纲
- 后台选课管理:按每门课程进行选课统计,支持名单数据导出Excel,打印
概要设计

技术运用
- 前端基于微信小程序平台进行开发
- 后端基于Java Springboot架构开发
- 数据库: MySQL (8.0+)
数据库设计
-- ----------------------------
-- Table structure for enlesson_enroll
-- ----------------------------
DROP TABLE IF EXISTS `enlesson_enroll`;
CREATE TABLE `enlesson_enroll` (`ENROLL_ID` int NOT NULL AUTO_INCREMENT,`ENROLL_TITLE` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,`ENROLL_VOUCH` int NOT NULL DEFAULT 0,`ENROLL_STATUS` int NOT NULL DEFAULT 0,`ENROLL_CATE_ID` int NOT NULL DEFAULT 0,`ENROLL_CATE_NAME` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,`ENROLL_MAX_CNT` int NOT NULL DEFAULT 0,`ENROLL_START` bigint NOT NULL,`ENROLL_END` bigint NOT NULL,`ENROLL_ORDER` int NOT NULL DEFAULT 9999,`ENROLL_VIEW_CNT` int NOT NULL,`ENROLL_JOIN_CNT` int NOT NULL DEFAULT 9,`ENROLL_FORMS` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,`ENROLL_OBJ` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,`ADD_TIME` bigint NULL DEFAULT 0,`EDIT_TIME` bigint NULL DEFAULT 0,PRIMARY KEY (`ENROLL_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for enlesson_enroll_join
-- ----------------------------
DROP TABLE IF EXISTS `enlesson_enroll_join`;
CREATE TABLE `enlesson_enroll_join` (`ENROLL_JOIN_ID` int NOT NULL AUTO_INCREMENT,`ENROLL_JOIN_ENROLL_ID` int NOT NULL DEFAULT 0,`ENROLL_JOIN_USER_ID` int NOT NULL DEFAULT 0,`ENROLL_JOIN_STATUS` int NOT NULL DEFAULT 0,`ADD_TIME` bigint NOT NULL DEFAULT 0,`EDIT_TIME` bigint NOT NULL DEFAULT 0,PRIMARY KEY (`ENROLL_JOIN_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1931 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for enlesson_fav
-- ----------------------------
DROP TABLE IF EXISTS `enlesson_fav`;
CREATE TABLE `enlesson_fav` (`FAV_ID` int NOT NULL AUTO_INCREMENT,`FAV_USER_ID` int NOT NULL DEFAULT 0,`FAV_TITLE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`FAV_TYPE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`FAV_OID` int NOT NULL DEFAULT 0,`FAV_PATH` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`ADD_TIME` bigint NOT NULL DEFAULT 0,`EDIT_TIME` bigint NOT NULL DEFAULT 0,PRIMARY KEY (`FAV_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 29 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Table structure for enlesson_news
-- ----------------------------
DROP TABLE IF EXISTS `enlesson_news`;
CREATE TABLE `enlesson_news` (`NEWS_ID` int NOT NULL AUTO_INCREMENT,`NEWS_TITLE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`NEWS_CATE_ID` int NOT NULL DEFAULT 0,`NEWS_CATE_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`NEWS_STATUS` int NOT NULL DEFAULT 1,`NEWS_ORDER` int NOT NULL DEFAULT 9999,`NEWS_VOUCH` int NOT NULL DEFAULT 0,`NEWS_CONTENT` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`NEWS_VIEW_CNT` int NOT NULL DEFAULT 0,`NEWS_PIC` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`NEWS_OBJ` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`NEWS_FORMS` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`ADD_TIME` bigint NOT NULL DEFAULT 0,`EDIT_TIME` bigint NOT NULL DEFAULT 0,PRIMARY KEY (`NEWS_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 68 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Table structure for enlesson_setup
-- ----------------------------
DROP TABLE IF EXISTS `enlesson_setup`;
CREATE TABLE `enlesson_setup` (`SETUP_ID` int NOT NULL AUTO_INCREMENT,`SETUP_TYPE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`SETUP_KEY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`SETUP_VALUE` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`ADD_TIME` bigint NOT NULL DEFAULT 0,`EDIT_TIME` bigint NOT NULL DEFAULT 0,PRIMARY KEY (`SETUP_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Table structure for enlesson_user
-- ----------------------------
DROP TABLE IF EXISTS `enlesson_user`;
CREATE TABLE `enlesson_user` (`USER_ID` int NOT NULL AUTO_INCREMENT,`USER_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`USER_ACCOUNT` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`USER_STATUS` int NOT NULL DEFAULT 1,`USER_PASSWORD` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,`USER_LOGIN_TIME` bigint NOT NULL DEFAULT 0,`USER_LOGIN_CNT` int NOT NULL DEFAULT 0,`USER_OBJ` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`USER_FORMS` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,`ADD_TIME` bigint NOT NULL DEFAULT 0,`EDIT_TIME` bigint NOT NULL DEFAULT 0,PRIMARY KEY (`USER_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1219 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;SET FOREIGN_KEY_CHECKS = 1;
UI设计








后台管理










git代码下载
点击下载
相关文章:
从0到100:基于Java的大学选修课选课小程序开发笔记(上)
背景 为学生提供便捷的课程选择方式,并帮助学校进行课程管理和资源调配;主要功能包括:课程展示,自主选课,取消选课,后台录入课程,统计每门课程报名情况,导出数据,用户管…...
【算法题解】B. President‘s Office - Python实现
题目描述 Berland的总统办公室内设有多个办公桌,其中总统和其属下各自拥有独特颜色的办公桌。总统希望统计哪些属下的办公桌紧邻他的办公桌,但不记得确切的数量。 输入描述: 第一行包含三个值 n, m, c,分别是办公室的长度、宽度…...
【Spring Boot 】详解
Spring Boot 详解 一、Spring Boot 概述 (一)产生背景 随着 Java 应用的日益复杂,传统 Spring 框架在项目搭建与配置方面愈发繁琐,大量的 XML 配置、依赖管理等工作耗费开发者诸多精力。为解决这些痛点,Spring Boot …...
Redisson 框架详解
目录 一.为什么要使用分布式锁? 二.Redisson 的基本使用: 1.添加 Redisson 依赖: 2.在 application.yml 配置 Redis: 3. 创建 Redisson 客户端: (1)单节点模式: (…...
正确导入MapStruct并避免与Lombok编译冲突的深入分析
正确导入MapStruct并避免与Lombok编译冲突的深入分析 一、MapStruct与Lombok概述 1.1 MapStruct简介 MapStruct是一个代码生成器,它基于约定优于配置的原则,通过注解处理器在编译时自动生成源代码,实现对象之间的属性映射。MapStruct的优势在于减少样板代码,提高开发效率…...
K8S 黑魔法之如何从 Pod 拿到节点的命令行
搞 K8S 运维的时候,偶尔会遇到一个难题,定位到问题出在某个节点上,而由于权限审批,错误配置等等各种原因,没有办法拿到节点的 SSH 权限,无法进入节点命令行进一步排障。 这个时候,就可以用这个…...
【bluedroid】A2dp Source播放流程源码分析(4)
接上集分析:【bluedroid】A2dp Source播放流程源码分析(3)-CSDN博客 蓝牙和AUDIO之间的接口 蓝牙和audio之间的通信是通过socket,管理socket中的文件是UIPC,UIPC管理两条socket。 A2DP_CTRL_PATH /data/misc/bluedroid/.a2dp_ctrl A2DP_DATA_PATH /data/misc/bluedroid…...
计算机网络 (9)数据链路层
前言 计算机网络中的数据链路层(Data Link Layer)是OSI(开放系统互连)参考模型中的第二层,位于物理层和网络层之间。它在物理层提供的服务基础上,负责在相邻节点之间建立、维护和终止链路,确保数…...
kubernetes学习-集群搭建部署(一)
一、开三台虚拟机进行试验(centos7) 1、初始操作 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld# 关闭selinux sudo sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时# 关闭swap sudo swapoff -a # 临时 s…...
docker commit生成的镜像瘦身
1、清除宿主系统的docker资源 docker system prune -a --volumes 2、清理容器内系统的临时文件和缓存 # 删除包管理器缓存 apt-get clean rm -rf /var/lib/apt/lists/* # 删除日志文件 rm -rf /var/log/* # 删除临时文件 rm -rf /tmp/* 3、安装docker squash工具࿰…...
基于Spring Boot的宠物领养系统的设计与实现(代码+数据库+LW)
摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领…...
7.若依参数设置、通知公告、日志管理
参数设置 对系统中的参数进行动态维护。 关闭验证码校验功能 打开页面注册功能 需要修改前端页面代码 通知公告 促进组织内部信息传递 若依只提供了一个半成品,只实现了管理员可以添加通知公告。 日志管理 追踪用户行为和系统运行状况。 登录日志 和操作日志…...
基于FISCO BCOS的电子签署系统
概述 本项目致力于构建一个安全、高效且功能完备的电子签署系统,通过整合区块链技术与传统数据库管理,为用户提供了可靠的电子签署解决方案,有效应对传统电子签署系统的数据安全隐患,满足企业和个人在数字化办公环境下对电子文档…...
RocketMQ(二)RocketMQ实战
文章目录 一、RocketMQ实战1.1 批量消息发送1.2 消息发送队列自选择1.3 事务消息1.4 SpringCloud集成RocketMQ 二、最佳实践2.1 生产者2.1.1 发送消息注意事项2.1.2 消息发送失败处理方式 2.2 消费者2.2.1 消费过程幂等2.2.2 消费打印日志 2.3 Broker 三、相关问题3.1 为什么要…...
Java重要面试名词整理(十三):RocketMQ
文章目录 简述环境搭建分布式集群配置升级高可用集群 RocketMQ的消息模型基本流程消息确认机制广播消息顺序消息机制延迟消息批量消息过滤消息事务消息ACL权限控制机制 调优消费者端进行幂等控制 核心客户端负载均衡Consumer负载均衡 消息持久化设计Dleger集群的文件同步机制 简…...
机器学习之线性回归算法预测数据
机器学习之线性回归算法预测数据 目录 机器学习之线性回归算法预测数据线性回归算法概念理解算法导入线性回归模型参数理解误差项分析 LinearRegression理解参数理解返回值方法基本格式 预测一元线性回归数据问题及理解可视化数据理解数据预测 预测二元线性回归数据问题及理解数…...
Python | 如何在Matplotlib中仅绘制热图的上/下三角形
热图是一种强大的可视化工具,用于以矩阵格式表示数据,其中各个值由颜色表示。它们对于可视化相关矩阵特别有用,其中矩阵的对称性质使得显示上下三角形变得多余。本文将指导您使用Matplotlib(Python中流行的绘图库)仅绘…...
Leetcode经典题20--长度最小的子数组
题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 输入输出示例 输入&…...
【计算机视觉】超简单!维纳滤波的经典案例
Hey小伙伴们!今天来给大家分享一个 计算机视觉 中非常经典且实用的技术——维纳滤波(Wiener Filter)。维纳滤波是一种基于最小均方误差准则的滤波方法,广泛应用于图像去噪、模糊恢复等领域。它不仅可以有效去除图像中的噪声&#…...
【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存!
添加图片注释,不超过 140 字(可选) 【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存! 大家好,我是Jimmy。反推提示词的节点有很多,像Florence2 、Joycaption2、喵手等。都是非常优秀的。但是呢,就是占用设备资源,加…...
Paperxie AI 毕业论文写作,助力大学生高效搞定初稿
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 在本科毕业季的朋友圈里,总能刷到这样的动态:凌晨三点的台灯下,对着空白文档发…...
LabVIEW以声卡为数据采集设备开发数据采集处理系统。 具备声卡参数设置,实现文件自动存储、...
LabVIEW以声卡为数据采集设备开发数据采集处理系统。 具备声卡参数设置,实现文件自动存储、以及文件手动存储两种功能,进行采集数据的分析,包括频域分析,滤波处理等功能; 程序实验报告在工业测量和实验室场景中&#x…...
【obs studio】从零开始:高效录制屏幕与声音的完整指南
1. 为什么选择OBS Studio录制屏幕与声音? 如果你正在寻找一款免费、开源且功能强大的屏幕录制工具,OBS Studio绝对是你的不二之选。我最初接触这款软件是因为需要录制一些技术教程,试过市面上不少付费软件后,发现OBS Studio不仅完…...
变压器匝间短路这玩意儿仿真起来是真刺激。今儿拿COMSOL折腾了个5%短路模型,从电磁场到噪声一条龙全流程,咱们边撸代码边唠嗑
comsol仿真,变压器匝间短路5%的电磁振动噪声模型 包括电磁场分布,磁密分布,振动形变,噪声分布等结果建模第一步得先让线圈支棱起来。在组件里用参数化曲线画线圈特别实用: # 参数化螺旋线 r 0.5 # 半径(m) pitch 0.…...
PyFluent:3大核心场景实现CFD仿真全流程自动化
PyFluent:3大核心场景实现CFD仿真全流程自动化 【免费下载链接】pyfluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent 计算流体动力学(CFD)仿真作为工程设计的关键环节,长期面临流程繁琐、迭代低效、跨学科协…...
工业质检新突破:如何用GLAD扩散模型实现高精度无监督异常检测(附MVTec-AD实测)
工业质检革命:GLAD扩散模型如何重塑无监督缺陷检测 在制造业智能化转型浪潮中,工业质检环节正经历着从人工目检到AI视觉的范式转移。传统基于规则或监督学习的检测系统面临标注成本高、泛化能力弱等痛点,而无监督异常检测技术凭借"零样本…...
新手必看:Carsim与Simulink联合仿真搭建AEB系统的5个关键步骤
从零搭建AEB系统:Carsim与Simulink联合仿真实战指南 在自动驾驶技术快速发展的今天,自动紧急制动系统(AEB)已成为车辆安全领域的重要研究方向。对于车辆工程专业的学生和自动驾驶初学者而言,掌握Carsim与Simulink的联合…...
低功耗电源开关电路设计与MCU控制实现
1. 经典电源开关电路设计与分析1.1 系统架构概述该电源开关电路采用三级晶体管控制架构,实现以下核心功能:低功耗待机模式(静态电流<10μA)按键触发启动机制MCU控制的自锁功能软件可控的电源关断系统工作电压为9V输入ÿ…...
3508RAID卡RAID与JBOD模式对比:如何选择最适合你的存储方案?
3508RAID卡RAID与JBOD模式深度解析:从原理到实战的存储方案选择指南 当企业面临数据存储方案的选择时,3508RAID卡提供的RAID和JBOD模式常常让人陷入纠结。这两种模式看似简单,实则背后隐藏着截然不同的设计哲学和应用场景。本文将带您深入理解…...
阿联酋人工智能大学:AI能在战争迷雾中做出理性判断吗?
这项由阿联酋穆罕默德本扎耶德人工智能大学和美国马里兰大学共同完成的研究发表于2026年3月,论文编号为arXiv:2603.16642v1。有兴趣深入了解的读者可以通过该编号查询完整论文。在人类历史上,预测战争走向一直是个极其困难的任务。就像我们很难在暴风雨中…...
