SpringBoot+MyBatis+MySQL 课程管理实训项目完整搭建记录,开发踩坑问题一次性整理

📅 2026/7/2 7:41:59
SpringBoot+MyBatis+MySQL 课程管理实训项目完整搭建记录,开发踩坑问题一次性整理
一、项目技术栈介绍本次实训独立开发课程管理后台整体技术选型 后端SpringBoot 2.7、MyBatis、MySQL8.0、Lombok 简化实体代码 前端原生 HTML jQuery静态页面存放于 resources/static 开发工具IDEA Community后端编码、Navicat数据库可视化 构建工具Maven 自动管理项目依赖二、完整搭建分步流程1. IDEA 初始化 SpringBoot 项目打开 IDEA新建 Spring Initializr 工程自定义包名com.hlw项目名称 untitled 勾选开发依赖Spring Web网页接口、MySQL Driver、Lombok等待 Maven 自动下载全部依赖包。2. 完善 pom.xml 依赖校验等待依赖加载完成核对核心依赖版本确认 Lombok、MySQL 驱动无版本冲突删除多余无用依赖保证项目轻量化。3. 配置 application.properties 全局配置文件编写数据库连接、MyBatis 映射、SQL 日志打印全套配置4. 创建标准分层目录结构在 java/com/hlw 下新建五层包controller、mapper、pojo、service、utils resources 目录新建 mappers 文件夹存放 MyBatis 映射 XMLstatic 文件夹存放所有前端 HTML 页面。5. MySQL 数据库初始化操作打开 Navicat创建数据库studentclass新建数据表t_course1 表字段course_id主键自增、course_name、location、teachername 手动插入 6 条课程测试数据用于后续页面查询展示。6. 编写实体类 Course使用 Lombok 注解Data、NoArgsConstructor、AllArgsConstructor自动生成 get、set、构造方法 实体字段和数据库表字段完全一致全部使用下划线命名避免字段映射错位。7. 编写 MyBatis Mapper 接口与 XML 映射文件mapper 包创建 CourseMapper 接口定义查询、新增课程抽象方法 resources/mappers 新建 CourseMapper.xml绑定 namespace 与接口编写增查 SQL 语句。8. 项目启动类配置扫描注解在 App 启动类添加MapperScan(com.hlw.mapper)让 Spring 自动识别所有 Mapper 接口解决 Mapper 无法注入报错。9. 前端静态页面部署将 index.html课程列表查询页、addCourse.html新增课程页放入 static 文件夹SpringBoot 自动放行静态资源直接通过浏览器地址访问页面。10. 项目启动验证运行 App 启动类控制台无红色报错后浏览器访问localhost:8080/index.html进入课程管理首页环境搭建全部完成。三、搭建阶段全部踩坑总结原创个人实操问题坑 1Unknown database xxx 数据库名称不匹配 问题配置文件 url 内库名和 Navicat 实际数据库名称不一致启动后访问接口直接 500 报错。 解决方案使用SHOW DATABASES;查看本地全部库同步修改 spring.datasource.url 中的库名确保完全一致。坑 2Table xxx doesn’t exist 数据表名书写错误 问题XML 中的 SQL 语句表名写为 course数据库真实表是 t_course1执行查询抛出表不存在异常。 解决方案统一所有 SQL 语句内的表名和 Navicat 中数据表名称完全对齐。坑 3Parameter index out of range 参数下标越界 问题XML 中同时写静态 where 查询条件 where动态标签SQL 拼接后占位符数量错乱。 解决方案删除重复的静态 where 语句仅保留where搭配if动态条件判断标签。坑 4Column course_name cannot be null 新增空值约束报错 问题数据库 course_name 字段设置非空前端不填写课程名称直接提交触发 SQL 约束异常。 解决方案前端 JS 增加输入框非空拦截后端 Controller 再次校验参数双层拦截杜绝空数据入库。坑 5页面表格数据显示 undefined 字段读取失败 问题实体字段带下划线 course_name前端使用驼峰 courseName 取值前后端字段命名不匹配页面空白。 解决方案前端表格渲染直接使用下划线字段item.course_name和后端 JSON 返回字段名保持一致。坑 6MyBatis 找不到 Mapper.xml 映射文件 问题未配置mybatis.mapper-locations映射路径Spring 无法读取 XML 文件注入 Mapper 失败。 解决方案在 properties 补充映射路径classpath:/mappers/*.xml重启项目生效。四、个人搭建学习感悟本次从零搭建 SpringBoot 前后端简易课程管理系统完整走完 Maven 项目初始化、数据库连接、MyBatis 持久层配置、静态页面放行全流程。开发过程中遇到大量数据库、配置文件、MyBatis 相关报错反复调试排查让我理清了 SpringBoot Web 项目底层运行逻辑充分理解分层开发、配置规范的重要性为后续复杂业务系统开发积累实操经验。