Bootstrap

Java Swing + MySQL 学生选课管理系统(数据库结课作业)附带源码+文档

声明

本人是一名大二学生,根据我们数据库老师的要求以及结合B站“伯玉沉舟”与“清风君Java_毕设君”两位老师做的课程教学我写出了该项目。在网上找了不少项目,发现不是要VIP就是积分或者钱😭,所以我发出此文章希望可以帮助更多像我一样的学生以及初学者,给你们提供一些可以借鉴的案例,顺便记录我的编程学习🤠。

一.运行环境的搭建

相信大家在跟着别人写程序时都会出现版本不兼容这一问题,为此我想大佬们讨要了他们所用的数据库的版本以及编写Java的软件还有一些jar包,如果你只是来学习借鉴的你可以跳过此步,其他的同学我还是建议你们看看,因为我不想在让你们这一步出问题,这很让人头疼😣。所需的软件安装包我统一放在文章末尾的网盘链接中。

  1. eclipse版本:eclipse-jee-luna-SR2-win32-x86_64
  2. eclipse中的插件windowBulider版本:1.10.0
    在这里插入图片描述
    eclipse的插件都在这里下载:

eclipse的插件都在这里下载:

  1. jdk版本:jdk-8-64位

  2. Navicat for MySQL版本:10.1.7 - enterprise
    在这里插入图片描述

  3. MySQL版本:MySQL Server 5.7.42(这里我的MySQL是最新版的,选择图中红框框出来的选项,然后选择MySQL Server 5.7.42)具体安装步骤大家可以去搜索教学,这里不过多赘述。
    选择图中红框框出来的选项,然后选择MySQL Server 5.7.42

这里给大家一个“清风君Java_毕设君”提供的安装教程,所需文件我也一起在文章末尾给了
链接: 如何快速安装mysql数据库.
(这里指的注意的是,如果你是根据我提供的方法安装的mysql的话他的数据库账号是默认"root",密码是空的,在部署项目时密码什么也不用填)

二.项目大体框架及导入

           					本程序分成了四个包,共有七个实体类,结构如图:

在这里插入图片描述

关于如何在eclipse部署项目链接: 开发工具Eclipse的使用之导入项目(import).

三.项目部署

  1. 成功导入后大家不要忘记修改这几个jar包的路径,不然会影响到之后的步骤!
    在这里插入图片描述

  2. 导入项目后关于数据库的部署:因为大家的数据库密码之类的可能不同,大家在导入项目后依次点击:
    “EXAM -> src -> util -> Dbutil.java”,如过每一步都正确的话可一看到如下界面:
    在这里插入图片描述

  3. 修改自己的MySQL账号密码后点击运行: 如果链接成功的话会看到如下界面
    如过链接成功的话会看到
    这里出现报错大家自行百度解决,我就不过多赘述了,多数是环境的问题

四.恭喜你看完了整个项目的部署流程🎉!看看运行结果吧。

  1. 点击“LoginFrm.java”然后运行程序
    在这里插入图片描述

如过一切正常,那么我们就可以来到程序的登陆界面了!登陆界面如下:
在这里插入图片描述
2. 此时我们还不能登录,因为我们没有建立对应的表,所以接下来我们在MySQL中建立对应的数据库:
在这里插入图片描述

  1. 我的库中已经建好表了,这里再演示一次建表:
    在这里插入图片描述
  2. 在查询中输入以下sql语句(也可以用我提供的sql文件,一样的,一共有七个表)

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `s_admin`
-- ----------------------------
DROP TABLE IF EXISTS `s_admin`;
CREATE TABLE `s_admin` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `password` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_admin
-- ----------------------------
INSERT INTO `s_admin` VALUES ('1', 'admin', '1');

-- ----------------------------
-- Table structure for `s_class`
-- ----------------------------
DROP TABLE IF EXISTS `s_class`;
CREATE TABLE `s_class` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `info` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_class
-- ----------------------------
INSERT INTO `s_class` VALUES ('6', '网络1班', '网络');
INSERT INTO `s_class` VALUES ('7', '奋斗的公司的', '奋斗');
INSERT INTO `s_class` VALUES ('10', '软件1班', '史上最强班级');

-- ----------------------------
-- Table structure for `s_course`
-- ----------------------------
DROP TABLE IF EXISTS `s_course`;
CREATE TABLE `s_course` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `teacher_id` int(5) NOT NULL,
  `max_student_num` int(3) NOT NULL,
  `info` varchar(512) DEFAULT NULL,
  `selected_num` int(3) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `teacher_foreign` (`teacher_id`),
  CONSTRAINT `teacher_foreign` FOREIGN KEY (`teacher_id`) REFERENCES `s_teacher` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_course
-- ----------------------------
INSERT INTO `s_course` VALUES ('1', '大学数学', '3', '50', '数学课程', '3');
INSERT INTO `s_course` VALUES ('2', '大学英语', '4', '45', '大英3', '3');
INSERT INTO `s_course` VALUES ('3', '原子弹原理技术', '5', '66', '制造原子弹技术,很牛逼!', '0');
INSERT INTO `s_course` VALUES ('4', '软件工程', '3', '66', '666', '2');
INSERT INTO `s_course` VALUES ('5', '计算机原理', '4', '45', '计算机组成原理,非常重要。', '2');
INSERT INTO `s_course` VALUES ('6', '人工智能', '5', '2', '人工智能课程。', '2');
INSERT INTO `s_course` VALUES ('7', '数据结构', '3', '10', '学习数据结构', '2');

-- ----------------------------
-- Table structure for `s_score`
-- ----------------------------
DROP TABLE IF EXISTS `s_score`;
CREATE TABLE `s_score` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `student_id` int(5) NOT NULL,
  `course_id` int(5) NOT NULL,
  `score` int(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `student_score_foreign` (`student_id`),
  KEY `course_id_score_foreign` (`course_id`),
  CONSTRAINT `course_id_score_foreign` FOREIGN KEY (`course_id`) REFERENCES `s_course` (`id`),
  CONSTRAINT `student_score_foreign` FOREIGN KEY (`student_id`) REFERENCES `s_student` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_score
-- ----------------------------
INSERT INTO `s_score` VALUES ('1', '1', '1', '10');
INSERT INTO `s_score` VALUES ('2', '1', '4', '87');
INSERT INTO `s_score` VALUES ('4', '1', '2', '78');
INSERT INTO `s_score` VALUES ('5', '1', '3', '98');
INSERT INTO `s_score` VALUES ('6', '1', '5', '78');
INSERT INTO `s_score` VALUES ('7', '3', '6', '89');
INSERT INTO `s_score` VALUES ('8', '3', '1', '68');
INSERT INTO `s_score` VALUES ('9', '4', '1', '87');
INSERT INTO `s_score` VALUES ('10', '3', '2', '78');
INSERT INTO `s_score` VALUES ('12', '3', '4', '56');
INSERT INTO `s_score` VALUES ('13', '4', '4', '77');
INSERT INTO `s_score` VALUES ('14', '3', '5', '67');
INSERT INTO `s_score` VALUES ('15', '4', '6', '68');
INSERT INTO `s_score` VALUES ('17', '3', '7', '100');

-- ----------------------------
-- Table structure for `s_selected_course`
-- ----------------------------
DROP TABLE IF EXISTS `s_selected_course`;
CREATE TABLE `s_selected_course` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `student_id` int(5) DEFAULT NULL,
  `course_id` int(5) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `student_foreign` (`student_id`),
  KEY `course_foreign` (`course_id`),
  CONSTRAINT `course_foreign` FOREIGN KEY (`course_id`) REFERENCES `s_course` (`id`),
  CONSTRAINT `student_foreign` FOREIGN KEY (`student_id`) REFERENCES `s_student` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_selected_course
-- ----------------------------
INSERT INTO `s_selected_course` VALUES ('13', '1', '4');
INSERT INTO `s_selected_course` VALUES ('16', '3', '6');
INSERT INTO `s_selected_course` VALUES ('17', '3', '5');
INSERT INTO `s_selected_course` VALUES ('18', '3', '2');
INSERT INTO `s_selected_course` VALUES ('19', '4', '1');
INSERT INTO `s_selected_course` VALUES ('20', '4', '2');
INSERT INTO `s_selected_course` VALUES ('21', '1', '2');
INSERT INTO `s_selected_course` VALUES ('23', '4', '6');
INSERT INTO `s_selected_course` VALUES ('24', '4', '4');
INSERT INTO `s_selected_course` VALUES ('25', '1', '5');
INSERT INTO `s_selected_course` VALUES ('28', '5', '7');
INSERT INTO `s_selected_course` VALUES ('31', '1', '7');

-- ----------------------------
-- Table structure for `s_student`
-- ----------------------------
DROP TABLE IF EXISTS `s_student`;
CREATE TABLE `s_student` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `classId` int(5) NOT NULL,
  `password` varchar(32) NOT NULL,
  `sex` varchar(8) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `class_foreign` (`classId`),
  CONSTRAINT `class_foreign` FOREIGN KEY (`classId`) REFERENCES `s_class` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_student
-- ----------------------------
INSERT INTO `s_student` VALUES ('1', '李四', '6', '1', '女');
INSERT INTO `s_student` VALUES ('3', '李五', '6', '123', '女');
INSERT INTO `s_student` VALUES ('4', '王麻子', '7', '1', '保密');
INSERT INTO `s_student` VALUES ('5', '徐艺', '10', '123', '男');

-- ----------------------------
-- Table structure for `s_teacher`
-- ----------------------------
DROP TABLE IF EXISTS `s_teacher`;
CREATE TABLE `s_teacher` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `sex` varchar(5) NOT NULL,
  `title` varchar(32) NOT NULL,
  `age` int(5) NOT NULL,
  `password` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of s_teacher
-- ----------------------------
INSERT INTO `s_teacher` VALUES ('3', '张三', '男', '教授', '35', '1');
INSERT INTO `s_teacher` VALUES ('4', '李四', '男', '博导', '58', '222');
INSERT INTO `s_teacher` VALUES ('5', '王麻子', '男', '讲师', '28', '000000');

  1. 好了,我们再次运行“LoginFrm.java”(管理员账号为:“admin”,密码:“1”),选择管理员身份
    在这里插入图片描述

  2. 如果你也出现了这个界面,那么恭喜你真正成功了!
    在这里插入图片描述

  3. 来到主界面我们点击“选课管理”,我们会看到提前导入的数据,并且本程序的所有功能窗口
    统一出现在“主界面”中

    在这里插入图片描述
    好啦!这次的分享就到这里了,希望我的分享可以帮助到你!下面时链接😁
    链接: 百度网盘.

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;