毕业设计实战:基于SpringBoot+Vue+MySQL的大学生在线租房平台设计与实现全流程指南

28 阅读21分钟

毕业设计实战:基于SpringBoot+Vue+MySQL的大学生在线租房平台设计与实现全流程指南

在开发“基于SpringBoot+Vue+MySQL的大学生在线租房平台”毕业设计时,曾因“房屋租赁表未通过房屋ID与用户ID双外键关联”踩过关键坑——初期仅单独设计租赁表的编号字段,未与房屋表、用户表建立关联约束,导致统计某房屋租赁记录时需手动匹配数据,耗费1.3天重构表结构、补全关联SQL才解决问题📝。基于此次实战经验,本文将系统拆解从需求分析、技术选型、功能实现到测试验收的全流程要点,附避坑技巧与实操细节,为同类毕设提供可落地的实施指南。

一、需求分析:锚定租房平台核心诉求,避免功能冗余返工

部分同学在毕设初期易陷入“功能堆砌”误区,比如笔者曾耗时2天开发“租房数据分析大屏模块”,最终因偏离“房屋管理、租赁申请、报修处理、论坛互动”核心需求被导师要求删减。明确“用户角色-核心功能”对应关系,是降低返工率的关键前提。

1. 核心用户与功能拆解(优化后角色权限体系)

系统核心用户分为管理员、用户(大学生)、房东三类,前期曾因混淆“房东”与“管理员”的“房屋状态修改权限”,导致房东可自行标记房屋为“已租赁”引发数据混乱,明确角色边界后系统规范性显著提升,具体功能分工如下:

管理员端(核心必做功能)
  • 全维度信息管控
    • 人员管理:含用户管理(维护大学生账号,支持新增、密码重置、禁用违规账号,按姓名/学号筛选)、房东管理(录入房东信息,上传头像,记录姓名、手机号、身份证号、邮箱,按房东姓名/编号筛选)、管理员管理(新增子管理员、分配权限、查看操作日志,如“2024-06-01 管理员A审核用户B租赁申请”);
    • 基础数据管理:配置字典信息(如房屋类型、报修类型、公告类型、租赁状态),确保数据规范性(如房屋类型仅可选“单间”“合租”“整租”,报修类型限定“家电故障”“水电问题”“其他维修”);
  • 核心业务处理
    • 房屋与租赁管理:维护房屋档案(审核房东提交的房屋信息,自动生成房屋编号,标记房屋状态为“待租赁/已租赁”);审核租赁申请(查看用户学生证、申请理由,通过/驳回申请并填写意见),统计房屋租赁率(已租赁房屋数/总房屋数),导出租赁数据(Excel格式);
    • 报修与评价管理:处理用户报修请求(按报修类型/状态筛选,指派维修人员,更新报修进度);审核报修评价(删除恶意评价,确保评价真实性);
    • 论坛与公告管理:管理租房论坛(删除违规帖子,审核用户留言);发布公告(填写标题、类型、详情,设置“重要公告”首页置顶),删除失效公告;
房东端(核心需求功能)
  • 房屋与收益操作
    • 房屋管理:提交房屋信息(填写名称、地点、租金,上传房屋照片与信息文件,选择房屋类型),查看房屋审核状态,编辑未通过的房屋信息(如修正地点、补充介绍);
    • 租赁与收益查询:查看房屋租赁记录(用户姓名、租赁时间、租金金额),统计月度收益(所有房屋租金总和),导出收益报表;
  • 互动管理
    • 留言回复:查看用户对房屋的留言(如“房屋是否带家具”),及时回复疑问;
    • 公告查看:浏览管理员发布的公告(如“租赁政策更新”“报修流程调整”)。
用户端(核心需求功能)
  • 租房与售后操作
    • 房屋租赁:浏览房屋列表(按类型/租金区间筛选,查看房屋照片、介绍、房东信息),提交租赁申请(上传学生证,填写申请理由),跟踪申请审核状态;
    • 报修处理:租赁房屋后提交报修请求(选择报修类型,上传故障照片,填写故障描述),查看报修进度与处理结果,对报修服务进行评价;
  • 信息互动
    • 论坛交流:在租房论坛发布帖子(如“求推荐性价比高的房源”),回复其他用户帖子,分享租房经验;
    • 房屋收藏与留言:收藏心仪房屋(方便后续查看),对房屋留言咨询细节(如“是否允许养宠物”);
    • 公告查看:浏览管理员/房东发布的公告,获取租房相关通知。

2. 需求分析避坑要点(实战经验总结)

  • 拒绝空想调研:邀请5-6名同学模拟“房东提交房屋信息-管理员审核房屋-用户租赁申请-管理员审核-用户提交报修”场景,收集真实诉求。例如,基于用户“快速了解房屋真实情况”需求,增设“房屋视频预览”功能,实用性远高于冗余的“数据分析大屏”;
  • 绘制可视化用例图:用DrawIO绘制核心用例图(如“管理员-房屋审核”“用户-租赁申请”“房东-房屋管理”),汇报时直观呈现逻辑,避免纯文字描述偏差;
  • 明确约束条件:提前规定“房屋照片/学生证仅限JPG/PNG(≤5MB)”“房屋编号自动生成(格式:FW+年份+序号,如FW2024001)”“租金≥100元/月”“报修描述≥10字”“公告标题≥5字、内容≥30字”,为编码提供明确依据。

3. 可行性分析:从三维度论证,提升毕设专业性

可行性分析是开题关键,需避免泛泛而谈“可行”,从以下维度具体展开:

  • 技术可行性:SpringBoot、Vue、MySQL均为高校核心课程内容,资料丰富(如《SpringBoot实战》《Vue.js入门与实战》),技术门槛可控;开发工具(IDEA/Eclipse社区版、Navicat)均为免费/开源,调试便捷;需注意避免Tomcat 10版本,前期联调时出现Servlet API兼容问题,切换至Tomcat 8.5后解决;
  • 经济可行性:开发工具与技术均无成本,硬件用个人笔记本即可满足需求;系统上线后可替代传统租房模式(如线下张贴广告、纸质租赁协议),减少信息不对称(原租客找房平均耗时3天,系统上线后降至1天)、降低管理成本(原2人/天处理的租赁手续,系统1人/2小时即可完成);
  • 运行可行性:界面参考主流租房平台交互逻辑,高频功能(房屋查询、租赁申请、报修提交)置于首页,经测试,用户3分钟内可完成租赁申请提交,房东2分钟内可掌握房屋信息录入操作;系统占用资源低,8G内存笔记本可稳定运行。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

二、技术选型:优先稳定适配,拒绝盲目追新

前期曾跟风选用Java 11+SpringBoot 3+Redis技术栈,因Redis缓存配置不当导致房屋租赁数据重启后丢失,调试耗时1.1天。后续调整为“Java 8+SpringBoot 2.7+Vue 2.x+MySQL 5.7+Tomcat 8.5”组合,兼顾稳定性与开发效率,适合新手上手。

1. 核心技术栈选型说明(含避坑提醒)

技术工具选型理由避坑提醒
Java 8语法简洁,支持面向对象编程,与SpringBoot 2.7、Tomcat 8.5兼容性最佳,满足多角色权限、租房流程(房屋录入-租赁申请-报修处理)开发避免Java 11+版本,部分旧依赖(如commons-fileupload)支持不完善,易出现房屋照片上传IO异常
SpringBoot 2.7简化Spring配置,支持自动装配,内置事务管理,高效实现房屋管理、租赁审核等模块,降低开发复杂度配置application.yml时需检查数据库连接参数,前期因url缺失“useSSL=false”导致连接失败;事务需覆盖租赁申请核心流程(如审核通过与房屋状态更新同步)
Vue 2.x轻量级前端框架,支持组件化开发,快速实现动态页面(房屋列表、租赁表单、报修页面),数据绑定简化前后端交互避免Vue 3.x版本,部分UI组件(ElementUI)兼容不足,易出现租赁申请表单校验错误;配置axios拦截器处理token过期、请求超时问题
MySQL 5.7支持事务与外键,满足多表关联(房屋-租赁记录、用户-报修、房东-房屋),utf8mb4编码解决用户姓名、房屋名称生僻字乱码安装时手动设编码为utf8mb4,默认编码会导致租赁备注含特殊符号乱码;开启事务确保房屋状态修改与租赁记录同步原子性
IDEA/Eclipse社区版Eclipse轻量易用,适合Java新手入门;IDEA支持SpringBoot、Vue插件,断点调试便捷,代码提示更丰富,可按需选择安装“Maven Helper”插件管理依赖,避免手动导Jar包版本冲突,前期因缺失mysql-connector-java依赖导致数据库连接失败
Tomcat 8.5适配Java 8与SpringBoot 2.7,部署简单,支持热部署(修改代码无需重启服务器)避免Tomcat 10版本,与SpringBoot项目存在Servlet API兼容问题,易出现页面无法访问;端口设为8081(默认8080易冲突)
Navicat可视化MySQL管理工具,支持表结构设计、SQL执行、数据导入导出,便捷查看房屋、租赁、报修等数据避免使用破解版,建议用社区版;定期备份数据库,防止误操作导致租赁数据丢失

2. 开发环境搭建步骤(实操指南)

  1. 安装JDK 1.8:配置“JAVA_HOME”“Path”环境变量,cmd执行“java -version”显示“1.8.x”即为成功;
  2. 安装开发工具与插件:选择IDEA或Eclipse社区版,IDEA需安装“Vue.js”“Maven Helper”插件,Eclipse需安装“Spring Tools 4”插件,配置JDK为1.8,编码设为UTF-8;
  3. 安装MySQL 5.7与Navicat:用Navicat创建数据库“college_student_rental_platform”,编码utf8mb4,执行脚本创建表(房屋表、用户表、租赁表等);
  4. 配置Tomcat 8.5:解压后在开发工具中配置服务器,测试访问http://localhost:8081,出现默认页面即成功;
  5. 创建前后端项目:后端通过Spring Initializr创建项目,选择Web、MySQL、MyBatis等依赖;前端用Vue CLI创建项目,集成ElementUI组件库;
  6. 前后端联调:编写“查询房屋列表”接口,前端调用接口并展示数据,联调成功即环境搭建完成。

三、数据库设计:精简核心关联,避免数据混乱

数据库是大学生在线租房平台的核心,前期因未关联“报修表”与“房屋表”,导致无法追溯某房屋的历史报修记录,后续用“实体-属性-关系”分析法梳理,效率显著提升。

1. 核心表结构设计(精简版,共13张核心表)

  • 管理员表(admin):id(主键)、username(账号,唯一)、password(MD5加密)、role(角色)、addtime(新增时间);
  • 用户表(yonghu):id(主键)、yonghu_uuid_number(用户编号,唯一)、yonghu_name(姓名)、yonghu_phone(手机号,唯一)、yonghu_id_number(身份证号,唯一)、yonghu_photo(头像路径)、yonghu_email(邮箱)、new_money(余额)、create_time(创建时间);
  • 房东表(fangdong):id(主键)、fangdong_uuid_number(房东编号,唯一)、fangdong_name(姓名)、fangdong_phone(手机号,唯一)、fangdong_id_number(身份证号,唯一)、fangdong_photo(头像路径)、fangdong_email(邮箱)、new_money(余额)、create_time(创建时间);
  • 房屋表(fangwu):id(主键)、fangdong_id(房东ID,外键关联房东表id)、fangwu_name(名称)、fangwu_uuid_number(房屋编号,唯一)、fangwu_photo(照片路径)、fangwu_address(地点)、fangwu_file(信息文件路径)、fangwu_types(房屋类型)、fangwu_zhuangtai_types(状态,0=待租赁,1=已租赁)、fangwu_new_money(租金)、fangwu_content(介绍)、create_time(创建时间);
  • 房屋租赁表(fangwu_yuyue):id(主键)、fangwu_id(房屋ID,外键关联房屋表id)、yonghu_id(用户ID,外键关联用户表id)、fangwu_yuyue_uuid_number(申请编号,唯一)、fangwu_yuyue_text(申请理由)、fangwu_yuyue_file(学生证路径)、insert_time(租赁时间)、fangwu_yuyue_yesno_types(申请状态,0=待审核,1=已通过,2=已驳回)、create_time(创建时间);
  • 报修表(baoxiu):id(主键)、fangwu_id(房屋ID,外键关联房屋表id)、yonghu_id(用户ID,外键关联用户表id)、baoxiu_uuid_number(报修编号,唯一)、baoxiu_address(报修位置)、baoxiu_name(报修标题)、baoxiu_photo(故障照片路径)、baoxiu_types(报修类型)、baoxiu_content(描述)、baoxiu_yesno_types(申请状态,0=待处理,1=已解决)、create_time(创建时间);
  • 报修评价表(baoxiu_commentback):id(主键)、baoxiu_id(报修ID,外键关联报修表id)、yonghu_id(用户ID,外键关联用户表id)、baoxiu_commentback_text(评价内容)、insert_time(评价时间)、reply_text(回复内容)、create_time(创建时间);
  • 房屋收藏表(fangwu_collection):id(主键)、fangwu_id(房屋ID,外键关联房屋表id)、yonghu_id(用户ID,外键关联用户表id)、fangwu_collection_types(类型)、insert_time(收藏时间)、create_time(创建时间);
  • 房屋留言表(fangwu_liuyan):id(主键)、fangwu_id(房屋ID,外键关联房屋表id)、yonghu_id(用户ID,外键关联用户表id)、fangwu_liuyan_text(留言内容)、insert_time(留言时间)、reply_text(回复内容)、create_time(创建时间);
  • 租房论坛表(forum):id(主键)、forum_name(帖子标题)、yonghu_id(用户ID,外键关联用户表id)、fangdong_id(房东ID,外键关联房东表id)、forum_content(发布内容)、forum_state_types(帖子状态,0=正常,1=违规)、insert_time(发帖时间)、create_time(创建时间);
  • 公告表(gonggao):id(主键)、gonggao_name(标题)、gonggao_photo(图片路径)、gonggao_types(类型)、insert_time(发布时间)、gonggao_content(详情)、create_time(创建时间);
  • 留言板表(liuyan):id(主键)、yonghu_id(用户ID,外键关联用户表id)、liuyan_name(留言标题)、liuyan_text(内容)、insert_time(留言时间)、reply_text(回复内容)、create_time(创建时间);
  • 字典表(dictionary):id(主键)、dic_code(字段)、dic_name(字段名)、code_index(编码)、index_name(编码名称)、parent_id(父字段id)、remark(备注)、create_time(创建时间)。

2. 核心表关联测试(提前验证,避免返工)

建表后立即测试关联逻辑,步骤如下:

  1. 插入测试数据:房屋表(id=1,fangwu_name=“学府花园单间”,fangwu_uuid_number=“FW2024001”,fangdong_id=1,fangwu_new_money=1200)、房屋租赁表(id=1,fangwu_id=1,yonghu_id=1,fangwu_yuyue_yesno_types=1)、报修表(id=1,fangwu_id=1,yonghu_id=1,baoxiu_types=“家电故障”);
  2. 编写JOIN查询SQL,验证“某房屋的租赁与报修关联”:
SELECT f.fangwu_name, f.fangwu_uuid_number, f.fangwu_address, f.fangwu_new_money,
       fy.fangwu_yuyue_uuid_number, fy.fangwu_yuyue_text, fy.insert_time, fy.fangwu_yuyue_yesno_types,
       b.baoxiu_uuid_number, b.baoxiu_name, b.baoxiu_types, b.baoxiu_yesno_types,
       y.yonghu_name, y.yonghu_phone,
       fd.fangdong_name, fd.fangdong_phone
FROM fangwu f
JOIN fangwu_yuyue fy ON f.id = fy.fangwu_id
JOIN baoxiu b ON f.id = b.fangwu_id
JOIN yonghu y ON fy.yonghu_id = y.id
JOIN fangdong fd ON f.fangdong_id = fd.id
WHERE f.id = 1;

若能查询出“房屋信息(名称、编号、地点、租金)、租赁记录(申请编号、理由、时间、状态)、报修记录(编号、标题、类型、状态)、用户信息(姓名、手机号)、房东信息(姓名、手机号)”,说明关联正确;若出现外键错误,检查字段类型是否匹配(如fangwu_id与房屋表id是否同为Integer)。

关键避坑提醒:切勿将房屋照片、学生证等二进制数据存入数据库!前期尝试导致数据库体积骤增(50张房屋照片使数据库增大250MB),后续改为存储文件路径(如/static/fangwu/photo1.jpg),大幅提升查询速度。

四、功能实现:聚焦核心模块,提升答辩竞争力

无需开发所有功能,优先完成3个核心模块即可满足答辩要求,突出开发重点:

1. 管理员端:房屋审核与租赁申请处理模块(必做核心模块)

  • 核心逻辑
    1. 房屋审核:管理员进入房屋审核页,按“待审核/已通过/已驳回”筛选房东提交的房屋信息,查看详情(房屋名称、地点、照片、租金、房东信息);通过审核则生成房屋编号,标记状态为“待租赁”;驳回需填写理由(如“房屋信息不完整”),通知对应房东;
    2. 租赁申请处理:进入租赁管理页,查看用户提交的申请(含学生证、申请理由、房屋信息);通过审核则更新房屋状态为“已租赁”,同步生成租赁协议;驳回需填写理由(如“学生证信息有误”),通知对应用户;
    3. 数据统计:在房屋列表页查看“房屋-房东”分配统计,在租赁页统计月度租赁完成率(已完成租赁数/总申请数),支持导出统计报表。
  • 页面设计(Vue+ElementUI)
    • 房屋审核区:筛选区(审核状态、房东姓名)、表格展示房屋名称、地点、租金、房东、状态,操作列含“查看详情/通过/驳回”;驳回弹窗需填写理由输入框,带字数统计(≥5字);
    • 租赁处理区:筛选区(申请状态、用户姓名)、表格展示申请编号、房屋名称、用户、申请时间、状态,操作列含“查看详情/通过/驳回”;通过后自动生成租赁协议下载链接;
    • 数据统计区:用卡片展示“总房屋数”“本月新增租赁申请”“租赁完成率”,点击“导出报表”可下载Excel数据。

2. 用户端:房屋租赁与报修提交模块(核心需求模块)

  • 核心逻辑
    1. 房屋租赁:用户进入房屋列表页,按类型/租金区间筛选房屋,查看详情(照片、介绍、房东信息、留言);点击“租赁申请”上传学生证(≤5MB),填写申请理由(≥10字),提交后跟踪审核状态;
    2. 报修提交:租赁房屋后进入“我的租赁”页,选择对应房屋点击“提交报修”,选择报修类型(如“家电故障”),上传故障照片,填写描述(≥10字),提交后查看报修进度;
    3. 报修评价:报修完成后,对服务进行评价(填写评价内容,标注满意度),查看管理员回复。
  • 页面设计
    • 房屋租赁区:房屋列表用卡片式展示(含名称、照片、租金、地点),卡片底部设“查看详情/租赁申请”按钮;申请弹窗含学生证上传组件、必填项标红(申请理由);
    • 报修提交区:表单含房屋下拉框(仅显示已租赁房屋)、报修类型下拉框、照片上传组件、描述文本框,底部为“提交”按钮;提交后显示“报修申请已提交,等待处理”提示;
    • 报修评价区:报修完成后显示“评价”入口,弹窗含满意度选择器(1-5星)、评价内容输入框,提交后更新评价列表。

3. 房东端:房屋信息管理与收益统计模块(答辩亮点模块)

  • 核心逻辑
    1. 房屋信息提交:房东进入房屋管理页,点击“新增房屋”,填写名称、地点、租金,上传照片(≤5MB)与信息文件,选择房屋类型,填写介绍,提交后等待管理员审核;查看审核状态,未通过可编辑后重新提交;
    2. 收益统计:进入收益中心,查看所有房屋的租金收益(按月份筛选),统计月度/季度总收益;支持导出收益报表(Excel格式),查看每笔收益对应的租赁记录;
    3. 留言回复:查看用户对房屋的留言(如“是否可短租”),在留言管理页填写回复内容,实时通知对应用户。
  • 页面设计
    • 房屋提交区:表单含名称输入框、地点选择器、租金输入框(带数字校验)、照片上传组件、类型下拉框、介绍文本域,底部为“提交审核”按钮;
    • 收益统计区:用折线图展示月度收益趋势,表格展示房屋名称、租金、租赁时间、收益状态,操作列含“查看详情/导出”;
    • 留言回复区:表格展示用户姓名、留言内容、时间,操作列含“回复”;回复弹窗含文本输入框,提交后实时更新回复内容。

五、测试验收:全面排查问题,保障答辩顺利

笔者前期未测试“用户重复提交同一房屋的租赁申请”场景,导致出现“同一用户对‘学府花园单间’提交2次租赁申请”的bug,被导师指出“未做‘用户ID+房屋ID’唯一性校验”并扣分😥。需针对性完成以下测试:

1. 核心功能测试用例

测试场景操作步骤预期结果
用户重复提交租赁申请用户进入房屋页→选择“学府花园单间”→提交租赁申请→未刷新页面再次提交相同申请系统提示“您已提交该房屋的租赁申请,无需重复操作”,提交失败
管理员审核房屋信息房东提交“丽景小区合租”房屋信息→管理员进入审核页→点击“通过”房屋状态更新为“待租赁”,生成房屋编号FW2024002,房东收到“房屋审核通过”通知
用户提交报修并评价用户租赁房屋后提交报修(家电故障)→管理员处理后标记“已解决”→用户进入报修页评价报修状态变为“已解决”,用户可填写评价,评价后管理员收到通知

2. 兼容性与性能测试

  • 兼容性:测试Chrome、Firefox、Edge浏览器,修复IE11下表单样式错乱、房屋照片预览失败问题;测试手机端浏览器,确保租赁申请、报修提交页面自适应(按钮大小适配手指点击);
  • 性能:用Jmeter模拟50个用户同时查询房屋列表,系统响应时间≤2秒,无数据丢失;管理员批量审核20个租赁申请,耗时≤3秒,房屋状态更新准确。

3. 测试报告撰写

包含“测试目的、范围、用例、结果”,明确已修复问题(重复租赁拦截、房屋状态同步、浏览器兼容),结论说明“核心功能无严重bug,可满足大学生在线租房需求”,附测试截图(如重复提交提示、租赁审核通过通知)。

六、答辩准备:掌握3个技巧,提升通过率

  1. 演示流程梳理:按“房东提交房屋-管理员审核房屋-用户租赁申请-管理员审核申请-用户提交报修”演示,每个步骤停顿2秒,重点展示“房屋表与租赁表关联逻辑”“租赁申请与房屋状态同步”,让评委清晰看到功能流转;
  2. 突出问题解决能力:重点讲“房屋租赁表双外键关联修复”“重复租赁唯一性校验实现”“数据库文件路径存储优化”,结合开发踩坑与解决方案(如“初期用二进制存房屋照片导致数据库卡顿,改为路径存储后查询速度提升40%”),比单纯讲技术栈更有说服力;
  3. 提前预判问题:针对“如何确保用户数据安全”,回答“密码MD5加密、学生证信息脱敏、操作日志可追溯、违规账号禁用机制”;针对“如何提升用户体验”,回答“房屋筛选可视化、租赁状态实时提醒、报修进度跟踪”。

结语

本文基于SpringBoot+Vue+MySQL的大学生在线租房平台实战经验,核心是“聚焦租房核心业务(房屋管理、租赁处理、报修服务)、优先稳定技术、提前排查表关联与数据校验问题”。毕设无需追求复杂功能(如AI房源推荐、多端同步),把房屋审核、租赁申请、报修处理等核心功能做扎实,即可顺利通过答辩。

若需要核心源码(带注释)、数据库脚本(含测试数据)、ER图模板,可在评论区留言“SpringBoot+Vue租房平台”获取;若在模块开发中遇问题(如租赁申请关联逻辑、报修进度同步),也可留言咨询,笔者将及时回复。

收藏本文,便于开发查阅~ 祝各位同学毕设顺利,轻松毕业!🎉