news 2026/2/6 0:33:42

毕业设计实战:基于Spring Boot+MySQL的美妆购物网站设计与实现,从需求到测试全流程避坑指南!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
毕业设计实战:基于Spring Boot+MySQL的美妆购物网站设计与实现,从需求到测试全流程避坑指南!

毕业设计实战:基于Spring Boot+MySQL的美妆购物网站设计与实现,从需求到测试全流程避坑指南!

谁懂啊!当初做美妆购物网站毕设时,光“商品表”和“商家表”的外键关联就卡了2天——一开始没给商品表设“商家id”外键,查某商家的商品列表时数据全混到其他商家名下,导师看了直接让我“重新梳理数据库实体关系”😫 后来踩遍无数坑才摸出高效落地流程,今天把需求分析、技术选型、功能实现到测试的核心细节说透,宝子们不用熬夜改代码,轻松搞定毕设!

一、先搞懂“美妆购物网站要啥”!需求分析别瞎蒙

刚开始我跳过需求分析就写代码,花两周加了个“智能推荐算法”,结果导师一句“核心是商品管理、用户管理、订单统计,不是复杂算法”直接打回重改!后来才明白,需求分析得先抓准“谁用系统、要干啥”,这步做对,少走90%弯路。

1. 核心用户&功能拆解(踩坑后总结版)

系统只有两类核心用户:管理员、普通用户(别加“物流子角色”!我当初加了后权限混乱,物流能修改用户订单状态,砍掉才顺畅),功能明确区分,避免越权:

  • 管理员端(必做功能):
    • 用户管理:维护用户账号(新增、重置密码、逻辑删除)、按姓名/手机号筛选用户、查看用户完整信息(头像、身份证号、联系方式、积分余额)
    • 商品管理:维护商品类型(新增“护肤/彩妆/香水”分类及二级类型)、管理商品信息(登记商品编号/名称/品牌、上传商品照片、设置库存与价格、关联商家)、按商品名称/品牌/类型筛选商品、审核商品上架状态
    • 订单管理:查看所有用户订单(订单号、商品、实付价格、支付类型)、更新订单状态(待付款/已付款/已发货/已完成)、按订单号/用户姓名筛选订单、导出订单统计报表
    • 公告管理:维护公告类型(新增“活动信息/系统通知”分类)、发布公告(填写标题、上传图片、编辑详情)、修改/删除公告、按公告类型筛选公告
  • 用户端(核心需求):
    • 个人操作:修改个人信息(头像、手机号、邮箱)、查看积分与余额、管理收货地址(新增/编辑/设置默认地址)
    • 购物操作:浏览商品列表(按类型/品牌筛选)、查看商品详情(价格、库存、介绍)、加入购物车(修改购买数量)、提交订单(选择收货地址、支付方式)、查询订单记录
    • 互动操作:收藏心仪商品、评价已购商品、查看公告信息、在论坛发布帖子与回复

2. 需求分析避坑指南(血泪教训!)

  • 别空想!找2个同学模拟管理员和用户提意见:比如用户说“想快速找到自己的收藏商品”,我才加了“商品收藏按‘添加时间’排序”,比瞎加“智能推荐”实用
  • 一定要画用例图!用DrawIO画“管理员-添加商品”“用户-提交订单”“管理员-发布公告”,跟导师汇报时比光说“我要做XX功能”直观10倍(当初没画,导师听20分钟没get到逻辑)
  • 写“需求规格说明书”!把约束条件写清楚(如“商品价格≥0”“商品编号唯一”“订单实付价格=商品现价×购买数量”),编码时对着做,不跑偏

3. 可行性分析别敷衍!3点写清楚就能过

导师超爱问“系统可行吗”,别只说“我觉得可行”,从3个角度写,显专业:

  • 技术可行性:Spring Boot、Java、MySQL都是课堂学过的,图书馆有《Spring Boot实战》《MySQL数据库设计与优化》,遇到问题能查资料(别用Spring Boot 3.x!我当初试了,跟MySQL 8.0联调时商品提交接口卡3天,换回2.7稳定版才顺)
  • 经济可行性:工具全免费!Eclipse(免费版)、MySQL、Navicat(学生版)、Tomcat官网直接下,答辩时说“开发成本0,还能帮美妆商家节约线下门店租金、人工对账时间,实现线上高效运营”,导师会觉得你懂成本控制
  • 操作可行性:界面参考主流美妆购物APP,常用功能放显眼位置(如“我的订单”在用户首页中部),找同学测试,10分钟学会浏览商品、提交订单,导师直接认可

二、技术选型别跟风!这套组合稳到爆

刚开始我跟风用Spring Boot 3.x+Vue 3+Redis,结果“商品缓存”卡3天——Redis配置错,重启后用户购物车记录全丢😫 后来换成Java 8+Spring Boot 2.7+MySQL 8.0+JSP+Tomcat 9+Eclipse 2022,新手友好,调试效率翻两倍!

1. 技术栈核心选择(附避坑提醒)

别盲目选“最新技术”,稳定比炫酷重要!核心工具选择理由和坑点直接抄:

技术工具为啥选它避坑提醒!
Java 8语法简洁,Spring Boot 2.7兼容性最佳,学习资料多别用Java 11+!部分Spring依赖支持差,易出“类加载失败”
Spring Boot 2.7简化Spring配置,自带Tomcat,适合快速开发商品、订单功能别用自定义启动器!新手直接用官方starter(spring-boot-starter-web、spring-boot-starter-jdbc),避免配置错误导致接口调用失败
MySQL 8.0支持事务/外键,存用户、商品、订单数据足够用,utf8mb4编码解决生僻字乱码安装设“utf8mb4”编码!我当初用默认编码,商品名称含特殊符号乱码,查2小时才好
JSP与Java无缝衔接,适合做购物网站界面,支持动态数据渲染(如实时显示商品库存)别用HTML5替代!动态表单(如购买数量输入)需额外写JS,易出数据绑定错误
Tomcat 9轻量级服务器,适合中小型购物网站,与Spring Boot 2.7适配性好别用10+版本!部分Servlet类包路径变化,启动报错“Servlet初始化失败”
Eclipse 2022支持Java、Spring Boot开发,自带代码提示,插件丰富(如MyBatis Generator)别装太多插件!我当初装了10+插件,Eclipse频繁崩溃,只留“Spring Tools”“MyBatis Plugin”就够

2. 开发环境搭建(step by step 实操)

很多宝子卡“环境配置”,跟着步骤来,一次成功:

  1. 装JDK 1.8:记安装路径(如D:\Java\jdk1.8.0_301),配置“JAVA_HOME”环境变量,cmd输“java -version”显“1.8.x”即成
  2. 装Eclipse 2022:勾选“Spring Tools”插件,自动安装
  3. 装MySQL 8.0:用Navicat建数据库“cosmetic_shopping”,编码设“utf8mb4”,排序“utf8mb4_general_ci”
  4. 建Spring Boot项目:Eclipse选“Spring Starter Project”,引入Web、MyBatis、MySQL依赖,配置application.yml(数据库连接、端口号)
  5. 配前端页面:用JSP+Bootstrap写商品列表、订单管理页面,实现响应式布局
  6. 联调测试:在application.yml配置数据库连接(url: jdbc:mysql://localhost:3306/cosmetic_shopping?useSSL=false&serverTimezone=UTC),写“查询用户商品列表”接口,前端调用能显示商品名称、价格、库存即完成

三、数据库设计:别让表关联坑了你

这是毕设“核心骨架”,我当初没关联“订单表”和“商品表”,查“某商品的订单记录”要写3层嵌套SQL,调试到凌晨1点😫 后来按“实体-属性-关系”设计,终于理清。

1. 核心实体&属性(附ER图技巧)

先确定“实体”(用户、商品、订单、购物车、公告),再想“属性”,别漏关键字段!必做8张核心表,直接画ER图:

  • 用户表(yonghu):id(主键)、username(账户)、password(密码,MD5加密)、yonghu_name(姓名)、yonghu_phone(手机号)、yonghu_id_number(身份证号)、yonghu_photo(头像路径)、yonghu_email(邮箱)、new_money(余额)、yonghu_sum_jifen(总积分)、is_delete(逻辑删除:0=未删,1=已删)
  • 商品表(meizhuang):id(主键)、shangjia_id(关联商家)、meizhuang_uuid_number(商品编号)、meizhuang_name(商品名称)、meizhuang_photo(商品照片路径)、meizhuang_pinpai(品牌)、meizhuang_types(商品类型)、meizhuang_erji_types(商品二级类型)、meizhuang_old_money(原价)、meizhuang_new_money(现价)、meizhuang_kucun_number(库存)
  • 订单表(meizhuang_order):id(主键)、yonghu_id(关联用户)、meizhuang_id(关联商品)、address_id(关联收货地址)、meizhuang_order_uuid_number(订单号)、buy_number(购买数量)、meizhuang_order_true_price(实付价格)、meizhuang_order_types(订单状态)
  • 购物车表(gouwuche):id(主键)、yonghu_id(关联用户)、meizhuang_id(关联商品)、buy_number(购买数量)、create_time(添加时间)、update_time(更新时间)
  • 公告表(news):id(主键)、news_name(公告标题)、news_types(公告类型)、news_photo(公告图片路径)、news_content(公告详情)、insert_time(添加时间)

画ER图用Visio/亿图,记3规则:

  1. 矩形=实体(如“用户”“商品”)
  2. 椭圆=属性(如用户“姓名”“手机号”,商品“名称”“价格”)
  3. 菱形=关系(如“用户-商品”多对多,一个用户可买多个商品,一个商品可被多个用户购买;“用户-订单”一对多,一个用户可有多条订单记录)
    避坑提醒:别把“商品照片”存数据库!我当初存二进制导致数据库崩溃,改成存路径(如/static/photo/cosmetic1.jpg)才对。

2. 表关联测试!别等编码才发现错

建表后一定要测:在“用户表”插数据(id=1,username=“user1”,yonghu_name=“李四”,yonghu_phone=“13900139000”),“订单表”插关联数据(yonghu_id=1,meizhuang_id=1,buy_number=2,meizhuang_order_true_price=398),用JOIN查“某用户的订单记录”:

SELECTu.yonghu_name,u.yonghu_phone,m.meizhuang_name,m.meizhuang_new_money,o.buy_number,o.meizhuang_order_true_price,o.meizhuang_order_typesFROMmeizhuang_order oJOINyonghu uONo.yonghu_id=u.idJOINmeizhuang mONo.meizhuang_id=m.idWHEREu.id=1;

能查出“用户姓名+手机号+商品名称+现价+购买数量+实付价格+订单状态”说明关联对;若报错“Cannot add or update a child row”,大概率外键错,赶紧检查表结构(比如yonghu_id字段类型是否和用户表id一致)。

四、功能实现:核心模块操作+页面设计

不用做所有功能!先搞定3个核心模块,答辩足够出彩,附操作逻辑和页面要点:

1. 管理员端:商品信息管理模块(必做!)

核心是“发布+维护商品数据”,重点“价格合法性校验”和“商家关联”,别漏这两步!

  • 操作逻辑
    1. 发布商品前校验“商品价格≥0”“商品类型必选”“商家必选”“商品编号唯一”“库存≥0”,缺一项提示“完善商品信息”(我当初没加“库存≥0”校验,误填负数,数据显示异常,补了2小时逻辑)
    2. 更新商品状态时,选择“下架”需同步清空用户购物车中该商品记录,避免用户误下单无库存商品
    3. 删除商品记录时,采用“逻辑删除”(加meizhuang_delete字段),保留历史数据,避免用户查询订单时商品信息丢失
  • 页面设计(JSP+Bootstrap)
    • 筛选区:商品编号(模糊查)、商品名称(模糊查)、品牌(模糊查)、商品类型(下拉选)、查询/新增按钮
    • 商品列表:显示商品名称、品牌、类型、原价、现价、库存、商家名称,操作列“编辑/删除/更新上架状态”
    • 新增弹窗:商家(下拉选,加载所有已审核商家)、商品名称(输入框)、品牌(输入框)、商品类型(下拉选:护肤/彩妆/香水)、二级类型(下拉选,关联主类型)、原价/现价(数字输入框,≥0)、库存(数字输入框,≥0)、商品编号(输入框,带唯一性校验)、商品照片(上传框,存路径)

2. 管理员端:用户信息管理模块(核心需求!)

管理员核心操作是“维护用户账号”,流程别复杂:查询用户→编辑信息/重置密码→提交保存,我当初漏了“手机号唯一性校验”,导致重复注册同一手机号,补半天逻辑才好。

  • 操作逻辑
    1. 新增用户前校验“手机号唯一”“账户非空”“密码长度≥6”,不满足提示对应错误
    2. 重置用户密码时,默认重置为“123456”并提示“用户首次登录需修改密码”,避免密码泄露
    3. 编辑用户信息时,若修改用户积分/余额,需记录变更日志(如“2024-05-01 管理员增加用户积分100”),便于追溯
  • 页面设计
    • 用户列表区:显示用户姓名、手机号、账户、余额、总积分、会员等级,操作列“编辑/删除/重置密码”
    • 新增弹窗:账户(输入框,唯一性校验)、姓名(输入框)、手机号(输入框,唯一性校验)、身份证号(输入框)、初始密码(输入框,默认123456)、邮箱(输入框)
    • 编辑弹窗:加载用户当前信息,允许修改姓名、手机号、邮箱、头像,余额和积分单独编辑并需填写修改原因

3. 用户端:订单提交模块(答辩亮点!)

体现“购物闭环”,导师超爱问!核心“选商品-填地址-付订单-查状态”,别漏“库存扣减”。

  • 操作逻辑
    1. 用户提交订单前,校验“商品库存≥购买数量”“收货地址已选择”“支付方式已选择”,不满足提示对应错误
    2. 订单提交成功后,自动扣减商品库存(如商品原库存10,购买2件,库存更新为8),并增加用户积分(实付金额1元=1积分)
    3. 用户查询订单时,按“订单创建时间”倒序显示,标注订单状态(待付款/已付款/已发货/已完成),未付款订单超24小时自动取消并恢复库存
  • 页面设计
    • 订单确认页:显示商品名称、照片、单价、购买数量、小计,收货地址选择(下拉选用户名下地址)、支付方式选择(radio按钮:微信/支付宝)、实付金额计算(小计总和)、提交订单按钮
    • 订单列表页:卡片式布局,已完成订单标绿,待付款订单标红,显示订单号、商品缩略图、实付金额、状态、创建时间,点击卡片查看详情
    • 详情页:显示订单完整信息,含收货地址、支付方式、物流信息(已发货时显示),提供“取消订单”(待付款时)、“确认收货”(已发货时)按钮



五、测试别敷衍!这3步让答辩不翻车

很多宝子觉得“功能能跑就行”,答辩时评委一测就出问题!我当初没测“重复提交订单”,导致同一商品超库存下单,导师说“不符合购物逻辑”,当场扣分😫 测试要针对性做:

1. 功能测试(必测3模块)

重点测核心功能,整理测试用例表,直接填结果:

测试场景操作步骤预期结果
管理员填负数商品价格管理员新增商品→商家选“XX美妆店”,现价填“-99”→提交提示“商品价格不能为负数,请重新输入!”
用户超库存下单用户选商品(库存5)→购买数量填“10”→提交订单提示“商品库存不足,当前库存5,请调整购买数量!”
管理员重复添加商品编号管理员新增商品→商品编号填“CP001”→提交→再次新增相同编号→提交提示“该商品编号已存在,请勿重复添加!”

2. 兼容性测试(容易忽略)

别只在自己电脑测!答辩评委可能用不同设备和浏览器:

  • 浏览器:Chrome、Firefox、Edge、IE11(重点测IE,JSP页面兼容性差,需在index.html引入html5shiv.js修复)
  • 设备:电脑(1920×1080、1366×768分辨率)、手机(iPhone 13、华为Mate 40,测响应式布局)
  • 要求:无横向滚动条,按钮点击无延迟,商品数据加载≤2秒

3. 测试报告要写好!答辩加分

整理“测试报告”,含“目的、范围、用例、结果、问题总结”:

  • 问题总结:“IE下商品照片显示变形,加IE专属CSS修复;用户可超库存下单,加库存校验逻辑修复;商品编号可重复添加,加‘商品编号’唯一索引修复”
  • 测试结论:“核心功能无严重bug,兼容性问题已修复,满足美妆商品管理、用户购物、订单统计需求”

六、答辩准备:3个加分小技巧

  1. 演示流程顺畅:提前录视频(怕现场崩),按“管理员新增商品→用户浏览商品→用户加入购物车→用户提交订单→管理员查看订单”流程来,每个操作停顿2秒,让评委看清
  2. 讲“解决的问题”:比如“一开始商品照片存数据库崩了,改成存路径解决;用户能超库存下单,加库存校验逻辑解决;IE下页面变形,加兼容代码解决”,比光说“用了Spring Boot+MySQL”有亮点
  3. 准备常见问题:导师可能问“系统怎么保证用户数据安全?”,答“用户密码MD5加密;敏感操作(如修改余额)需二次确认;订单记录修改留日志,便于追溯;数据库每天自动备份,防止数据丢失”

最后:毕设通关小私心

以上就是基于Spring Boot+MySQL的美妆购物网站从0到1的避坑干货!毕设不难,别瞎做复杂功能(如智能推荐、物流跟踪),把商品管理、用户购物、订单统计做扎实,答辩就能过。

需要核心源码(带注释,直接能跑)、数据库脚本(含测试数据)、ER图模板的宝子,评论区扣“美妆购物网站”,我私发你;卡在某个模块(如订单状态更新、商品关联商家),也可以留言,看到必回!

点赞收藏,下次找流程不迷路~祝宝子们毕设顺利,轻松毕业!😘

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 2:56:03

Git入门学习

Git:分布式管理系统(存档)1. Your Identity 配置你的信息git config --global user.name "827dls"git config --global user.email 1670704430qq.com红色部分表示对第二个存档进行修改 非常直观上传GitHub查看提交日志 : git log

作者头像 李华
网站建设 2026/2/5 23:05:59

项目实战05—XXX火力发电厂工业蒸汽量预测

火力发电是一种很常用的发电技术,但是火力发电的转换效率并不高。其中蒸汽压力的高低直接关系到火力发电的效率,火力发电的效率与蒸汽的压力之间的关系并不是正相关关系。 火力发电过程要尽量使水处在蒸发的临界状态,这时火力发电的效率最高。因此,火力发电厂需要及…

作者头像 李华
网站建设 2026/2/3 9:31:53

在职备战法考,先择校还是先备考?

许多在职考生都听过一个建议:“别想太多,先学起来。”于是,你匆忙找来资料,埋头苦学两月,却越发感到方向模糊、效率低下、坚持困难……这时你可能才意识到:在错误的道路上“先出发”,往往意味着…

作者头像 李华
网站建设 2026/2/5 6:14:03

AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座

作者:琛琪、稚柳 引言 Agentic AI 时代已至,在智能客服、代码生成、流程自动化等场景中,多智能体(Multi-Agent)协作正从构想走向落地。然而,当多个 Agent 需要像一个团队那样高效协作时,脆弱的…

作者头像 李华
网站建设 2026/2/3 8:27:42

2025年夸克网盘新用户送1T 空间,免费领取!

一、活动时间 2025年01月01日 ~ 2025年12月31日 二、面向用户 夸克 App 新用户,即在手机端和 PC 端从未使用手机号注册过夸克账号的用户 只安装过夸克客户端但从未注册夸克账号的用户,也可获得本次新用户活动奖励; 如果用户使…

作者头像 李华
网站建设 2026/2/5 7:41:45

PDF24 Creator PDF 工具箱 v11.29.0

可将大部分文件转成pdf格式的免费软件,安装好后会在你的 打印机 里看到一个叫PDF24的虚拟打印机,你可将要转成pdf格式的文件打印时选虚拟打印机PDF24,也可以直接将文件以拖拉方式拉进这软件的主视窗编辑区里,它会自动转成pdf格式&…

作者头像 李华