毕业设计实战:基于Vue+Java+MySQL的农业设备租赁系统设计与实现指南

17 阅读7分钟

毕业设计实战:基于Vue+Java+MySQL的农业设备租赁系统设计与实现指南

在开发“基于Vue+Java+MySQL的农业设备租赁系统”毕业设计时,曾因“设备订单表未通过设备ID与用户ID双外键关联”踩过关键坑——初期仅单独设计订单表的编号字段,未与设备表、用户表建立关联约束,导致统计某用户租赁记录或某设备出租次数时需手动匹配数据,耗费1.2天重构表结构、补全关联SQL才解决问题📝。基于此次实战经验,本文精简拆解核心开发流程,附避坑要点与实操细节,为同类毕设提供可落地的实施参考。

一、需求分析:聚焦农业租赁核心,避免功能冗余

部分同学易陷入“功能堆砌”误区,比如笔者曾耗时1.5天开发“设备使用数据分析模块”,最终因偏离“设备管理、订单处理、公告通知、用户交互”核心需求被导师要求删减。明确“角色-功能”对应关系,是降低返工率的关键。

1. 核心角色与功能(精简版)

角色核心功能
管理员设备管理(新增/编辑/删除设备、设置库存与租金)、订单审核、公告发布、用户管理、留言反馈处理
用户设备查询(按类型/租金筛选)、租赁下单(选择天数、填写收货地址)、设备收藏、评价、公告查看

2. 需求避坑要点

  • 拒绝空想调研:邀请5-6名同学模拟“管理员录入设备-用户下单租赁-管理员审核订单”流程,基于“用户需快速确认设备库存”需求,增设“库存状态标签(充足/紧缺)”,实用性远大于冗余的“数据分析模块”;
  • 明确约束条件:提前规定“设备照片仅限JPG/PNG(≤5MB)”“设备编号自动生成(格式:SB+年份+序号,如SB2024001)”“租赁天数≥1天”“订单备注≥5字”,为编码提供明确依据。

二、技术选型:优先稳定适配,新手易上手

前期曾跟风选用Java 11+Vue 3+Redis技术栈,因Redis缓存配置不当导致设备库存数据重启后丢失,调试耗时1天。最终确定“稳定型”技术组合,兼顾开发效率与兼容性:

技术工具选型理由避坑提醒
Java 8语法简洁,支持面向对象编程,与MySQL 5.7、Tomcat 8.5兼容性最佳,满足租赁流程开发避免Java 11+版本,部分旧依赖(如commons-io)支持不完善,易出现设备照片上传异常
Vue 2.x轻量易上手,组件化开发,快速实现设备列表、订单表单等页面,搭配ElementUI降低前端难度避免Vue 3.x版本,ElementUI兼容不足,易出现订单表单校验错误
MySQL 5.7支持事务与外键,满足多表关联(设备-订单-用户),utf8mb4编码解决设备名称生僻字乱码安装时手动设编码为utf8mb4,避免订单备注含特殊符号乱码
Tomcat 8.5适配Java 8与Vue项目,支持热部署,减少代码修改后重启耗时端口设为8081,避免与默认8080端口冲突

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

数据库是系统核心,前期因未关联“设备评价表”与“设备表”,导致无法追溯某设备的历史评价,后续用“实体-属性-关系”分析法梳理,效率显著提升。

1. 核心表结构(精简版,共8张表)

  • 管理员表(admin):id(主键)、username(账号,唯一)、password(MD5加密)、role(角色);
  • 用户表(yonghu):id(主键)、yonghu_name(姓名)、yonghu_phone(手机号,唯一)、yonghu_photo(头像路径)、new_money(余额);
  • 设备表(shebei):id(主键)、shebei_name(设备名称)、shebei_uuid_number(编号,唯一)、shebei_photo(照片路径)、shebei_kucun_number(库存)、shebei_new_money(租赁现价/天);
  • 设备订单表(shebei_order):id(主键)、shebei_id(设备ID,外键关联设备表)、yonghu_id(用户ID,外键关联用户表)、buy_number(租赁天数)、shebei_order_true_price(实付价格)、shebei_order_yesno_types(订单状态);
  • 收货地址表(address):id(主键)、yonghu_id(用户ID,外键)、address_name(收货人)、address_phone(电话)、address_dizhi(地址);
  • 设备收藏表(shebei_collection):id(主键)、shebei_id(设备ID)、yonghu_id(用户ID)、insert_time(收藏时间);
  • 设备评价表(shebei_commentback):id(主键)、shebei_id(设备ID)、yonghu_id(用户ID)、shebei_commentback_text(评价内容);
  • 公告表(gonggao):id(主键)、gonggao_name(标题)、gonggao_content(详情)、insert_time(发布时间)。

2. 核心关联测试

建表后立即验证关联逻辑,示例SQL(查询某用户的租赁订单与设备信息):

SELECT o.shebei_order_uuid_number, o.buy_number, o.shebei_order_true_price, o.insert_time,
       s.shebei_name, s.shebei_photo, s.shebei_kucun_number, s.shebei_new_money,
       y.yonghu_name, y.yonghu_phone,
       a.address_name, a.address_dizhi
FROM shebei_order o
JOIN shebei s ON o.shebei_id = s.id
JOIN yonghu y ON o.yonghu_id = y.id
JOIN address a ON o.address_id = a.id
WHERE o.yonghu_id = 1;

若能查询出“订单+设备+用户+地址”完整信息,说明关联正确;若报错,检查字段类型是否匹配(如shebei_id与设备表id是否同为Integer)。

关键避坑:切勿将设备照片、用户头像存入数据库!前期尝试导致数据库体积骤增(50张设备照片占250MB),改为存储文件路径(如/static/shebei/photo1.jpg),查询速度提升40%。

四、核心功能实现:3大模块满足答辩需求

无需开发所有功能,优先完成以下3个核心模块,突出开发重点:

1. 管理员端:设备管理与订单审核(必做)

  • 核心逻辑:管理员录入设备信息(名称、库存、租金、照片),生成唯一编号;审核用户订单,通过则扣减设备库存,驳回需填写理由(如“设备库存不足”);
  • 页面设计:用ElementUI表格展示设备列表,操作列设“编辑/删除/查看库存”;订单审核页设“通过/驳回”按钮,驳回弹窗需填写理由(≥5字)。

2. 用户端:设备租赁与订单跟踪(核心)

  • 核心逻辑:用户按类型/租金筛选设备,查看详情(照片、库存、评价);点击“租赁”选择天数,关联收货地址,提交订单;在“我的订单”查看进度(待审核/已通过/已发货);
  • 页面设计:设备列表用卡片式展示(含名称、租金、库存标签);订单表单标红必填项(租赁天数、收货地址),提交后显示“3个工作日内审核”提示。

3. 设备评价与收藏(答辩亮点)

  • 核心逻辑:用户租赁完成后可评价设备(填写内容+满意度),其他用户可查看评价;心仪设备可点击“收藏”,在“我的收藏”快速找到;
  • 页面设计:设备详情页底部设“评价区”,显示历史评价;右上角设“收藏”按钮,收藏后图标变色(区分已收藏/未收藏)。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

五、测试与答辩:精简准备,高效通过

1. 核心测试用例

测试场景操作步骤预期结果
用户重复提交同一订单提交某设备租赁订单后,未刷新页面再次提交提示“已提交订单,无需重复操作”
管理员审核订单(库存不足)审核用户租赁订单,设备库存仅剩1,用户租2天提示“库存不足,驳回订单”,订单状态更新为“已驳回”

2. 答辩准备技巧

  • 演示流程:按“管理员录入设备→用户筛选下单→管理员审核订单→用户评价”演示,重点展示“设备表与订单表关联逻辑”“库存扣减同步”;
  • 突出问题解决:讲清“双外键关联修复”“文件路径存储优化”等踩坑经历,比单纯讲技术栈更有说服力。

结语

本文核心是“聚焦农业设备租赁核心业务、优先稳定技术、提前排查表关联问题”。毕设无需复杂功能,把设备管理、订单处理、用户交互做扎实,即可顺利通过答辩。

若需核心源码(带注释)、数据库脚本,可在评论区留言“Vue农业设备租赁系统”获取;开发中遇问题(如订单关联逻辑),也可留言咨询~ 祝毕设顺利!🎉