# thesis-simple **Repository Path**: haobinjun/thesis-simple ## Basic Information - **Project Name**: thesis-simple - **Description**: 简化版毕设管理系统,结构清晰易于理解和扩展 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-01-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 毕业设计课题管理系统 基于 Maven + Servlet + MyBatis + MySQL + Axios 的前后端分离项目,实现课题、学生、选课管理的增删改查功能。 ## 技术栈 - **前端**: HTML + CSS + JavaScript + Axios - **后端**: Java Servlet + MyBatis - **数据库**: MySQL 8.0+ - **构建工具**: Maven 3.6+ - **JDK版本**: JDK 8+ ## 环境要求 在运行项目之前,请确保已安装以下软件: ### 1. JDK 8 或更高版本 **下载并安装JDK:** ```bash # 使用PowerShell下载JDK 8(会下载到D盘根目录) # JDK 8下载地址(需要手动访问):https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html # 或使用OpenJDK 11(推荐,免费) # PowerShell命令: Invoke-WebRequest -Uri "https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip" -OutFile "D:\openjdk-11.0.2_windows-x64_bin.zip" # 解压到D:\OpenJDK-11目录 Expand-Archive -Path "D:\openjdk-11.0.2_windows-x64_bin.zip" -DestinationPath "D:\" -Force Rename-Item -Path "D:\jdk-11.0.2" -NewName "OpenJDK-11" -ErrorAction SilentlyContinue ``` **配置环境变量:** ``` JAVA_HOME=D:\OpenJDK-11 Path=%JAVA_HOME%\bin ``` **验证安装:** ```bash java -version javac -version ``` ### 2. Maven 3.6 或更高版本 **下载并安装Maven:** ```bash # 使用PowerShell下载Maven(会下载到D盘根目录) Invoke-WebRequest -Uri "https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip" -OutFile "D:\apache-maven-3.9.6-bin.zip" # 解压到D:\Maven目录 Expand-Archive -Path "D:\apache-maven-3.9.6-bin.zip" -DestinationPath "D:\" -Force Rename-Item -Path "D:\apache-maven-3.9.6" -NewName "Maven" -ErrorAction SilentlyContinue ``` **配置环境变量:** ``` MAVEN_HOME=D:\Maven Path=%MAVEN_HOME%\bin ``` **配置阿里云镜像(提高下载速度):** 编辑 `D:\Maven\conf\settings.xml`,在 `` 标签内添加: ```xml aliyunmaven * 阿里云公共仓库 https://maven.aliyun.com/repository/public ``` **验证安装:** ```bash mvn -version ``` ### 3. MySQL 8.0 或更高版本 **下载并安装MySQL:** ```bash # 使用PowerShell下载MySQL安装包(会下载到D盘根目录) # MySQL 8.0下载地址(需要手动访问):https://dev.mysql.com/downloads/mysql/ # 或使用以下命令下载MySQL Installer: Invoke-WebRequest -Uri "https://dev.mysql.com/get/Downloads/MySQL-Installer/mysql-installer-community-8.0.40.0.msi" -OutFile "D:\mysql-installer-community-8.0.40.0.msi" # 安装MySQL(双击运行下载的msi文件) # D:\mysql-installer-community-8.0.40.0.msi ``` **或使用MySQL ZIP压缩包版本:** ```bash # 下载MySQL 8.0 ZIP包 Invoke-WebRequest -Uri "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.40-winx64.zip" -OutFile "D:\mysql-8.0.40-winx64.zip" # 解压到D:\MySQL目录 Expand-Archive -Path "D:\mysql-8.0.40-winx64.zip" -DestinationPath "D:\" -Force Rename-Item -Path "D:\mysql-8.0.40-winx64" -NewName "MySQL" -ErrorAction SilentlyContinue ``` **配置环境变量(ZIP包版本):** ``` MYSQL_HOME=D:\MySQL Path=%MYSQL_HOME%\bin ``` **初始化MySQL(ZIP包版本):** ```bash # 创建数据目录 mkdir D:\MySQL\data # 初始化数据库(会生成临时密码) D:\MySQL\bin\mysqld --initialize --console # 安装Windows服务 D:\MySQL\bin\mysqld --install MySQL80 # 启动MySQL服务 net start MySQL80 ``` **修改root密码(ZIP包版本):** ```bash # 登录MySQL(使用临时密码) mysql -u root -p # 在MySQL命令行中修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; EXIT; ``` **验证安装:** ```bash mysql --version mysql -u root -p ``` ### 4. 浏览器 推荐使用 **Chrome** 或 **Firefox** 浏览器访问系统。 ## 快速开始 ### 第一步:配置数据库 1. **登录MySQL** ```bash mysql -u root -p ``` 2. **执行初始化脚本** ```bash mysql -u root -p < thesis-admin/src/main/resources/schema.sql ``` 或者直接在MySQL客户端执行 `thesis-admin/src/main/resources/schema.sql` 文件中的SQL语句。 3. **验证数据库创建成功** ```sql USE thesis_db; SHOW TABLES; ``` 应该看到三张表:`thesis`、`student`、`selection` ### 第二步:配置数据库连接 编辑文件 `thesis-admin/src/main/resources/db.properties`,修改数据库用户名和密码: ```properties # 数据库用户名(请修改为你的MySQL用户名) db.username=root # 数据库密码(请修改为你的MySQL密码) db.password=你的密码 ``` **重要**: 请务必修改这两个配置项,否则无法连接数据库! ### 第三步:编译项目 ```bash cd 毕业设计课题管理系统 mvn clean install -DskipTests ``` ### 第四步:启动项目 使用Maven Tomcat插件启动(推荐): ```bash cd thesis-admin mvn tomcat7:run ``` 启动成功后会看到类似输出: ``` [INFO] Running war on http://localhost:8081/thesis ``` ### 第五步:访问系统 在浏览器中打开: - **系统首页**: http://localhost:8081/thesis/static/index.html - **课题管理**: http://localhost:8081/thesis/static/thesis.html - **学生管理**: http://localhost:8081/thesis/static/student.html - **选课管理**: http://localhost:8081/thesis/static/selection.html ## 项目结构 ``` 毕业设计课题管理系统/ ├── README.md # 本文件 ├── pom.xml # Maven父项目配置 └── thesis-admin/ # 后端模块 ├── pom.xml # Maven配置 └── src/ └── main/ ├── java/com/thesis/ │ ├── entity/ # 实体类 │ │ ├── Thesis.java │ │ ├── Student.java │ │ └── Selection.java │ ├── dao/ # MyBatis Mapper接口 │ │ ├── ThesisDao.java │ │ ├── StudentDao.java │ │ └── SelectionDao.java │ ├── service/ # 业务层 │ │ ├── ThesisService.java │ │ ├── StudentService.java │ │ └── SelectionService.java │ ├── servlet/ # Servlet控制器 │ │ ├── ThesisServlet.java │ │ ├── StudentServlet.java │ │ └── SelectionServlet.java │ └── util/ # 工具类 │ ├── MyBatisUtil.java │ └── JsonUtil.java ├── resources/ │ ├── mybatis-config.xml # MyBatis配置 │ ├── db.properties # 数据库连接配置 ⚠️需要修改 │ ├── schema.sql # 数据库初始化脚本 │ └── mapper/ │ ├── ThesisMapper.xml │ ├── StudentMapper.xml │ └── SelectionMapper.xml └── webapp/ ├── WEB-INF/web.xml └── static/ # 前端静态资源 ├── index.html ├── thesis.html ├── student.html ├── selection.html ├── css/style.css └── js/ ├── api.js ├── thesis.js ├── student.js └── selection.js ``` ## 功能说明 ### 1. 课题管理 - 添加、编辑、删除、查询毕业设计课题 - 课题信息包括:名称、指导教师、分类、描述、难度、人数限制等 ### 2. 学生管理 - 添加、编辑、删除、查询学生信息 - 学生信息包括:学号、姓名、班级、联系电话、邮箱 ### 3. 选课管理 - 学生选择课题(自动检查人数限制) - 学生退课(自动释放名额) - 查看选课记录 ## API接口 ### 课题管理 | 方法 | 路径 | 功能 | |------|------|------| | GET | /api/thesis/list | 查询所有课题 | | GET | /api/thesis/get?id=x | 根据ID查询 | | POST | /api/thesis/add | 添加课题 | | PUT | /api/thesis/update | 更新课题 | | DELETE | /api/thesis/delete?id=x | 删除课题 | | GET | /api/thesis/available | 查询可选课题 | ### 学生管理 | 方法 | 路径 | 功能 | |------|------|------| | GET | /api/student/list | 查询所有学生 | | GET | /api/student/get?id=x | 根据ID查询 | | POST | /api/student/add | 添加学生 | | PUT | /api/student/update | 更新学生 | | DELETE | /api/student/delete?id=x | 删除学生 | ### 选课管理 | 方法 | 路径 | 功能 | |------|------|------| | GET | /api/selection/list | 查询所有选课记录 | | GET | /api/selection/student?student_id=x | 查询学生的选课 | | POST | /api/selection/select | 学生选课 | | DELETE | /api/selection/drop?id=x | 学生退课 | ## 常见问题 ### 1. 端口被占用 如果8081端口被占用,修改 `thesis-admin/pom.xml` 中的端口号: ```xml 8082 /thesis ``` ### 2. 数据库连接失败 检查 `db.properties` 配置是否正确: - 用户名是否正确 - 密码是否正确 - MySQL服务是否启动 ### 3. Maven依赖下载慢 在 `pom.xml` 中添加阿里云镜像(已配置在Maven settings.xml中最佳): ```xml aliyunmaven * 阿里云公共仓库 https://maven.aliyun.com/repository/public ``` ### 4. 编译错误 确保JDK版本是8或更高: ```bash java -version javac -version ``` ## 测试数据 系统初始化后包含以下测试数据: - **5个测试课题**: 涵盖Web开发、人工智能、大数据等方向 - **5个测试学生**: 学号2021001-2021005 ## 停止服务 在运行Maven Tomcat的终端按 `Ctrl+C` 即可停止服务。 ## 开发者信息 - 项目名称: 毕业设计课题管理系统 - 版本: 1.0-SNAPSHOT - 开发时间: 2024年 ## 许可证 本项目仅用于教学目的。