水果商城(Spring+MyBatis+SpringMVC)
模仿b站的项目(https://www.bilibili.com/video/BV1EC4y1a7yH),前端就是简单的JSP,前端基本上没有怎么修改(毕竟我是纯后端选手,其实是菜)。后端因为b站那位大佬是真的大佬,很对都是封装过的,对新手不太友好,我就把后端改了,但是基本逻辑还是跟着大佬走的。
系统开发平台:Tomcat9.0.60 + JDK11 + Windows 11
开发语言:JavaEE
框架:SSM—Spring+SpringMVC+MyBatis
JAR包管理:Maven3.8.2
前端:JQUERY
数据库:MySQL 8.0.23
开发环境: IntellijIdea
浏览器:Chrome
前后台界面
前台界面
前台界面
后台界面
后台界面
需求分析
功能结构图自顶向下逐层分解,靠近上层功能越笼统,靠近下层功能越具体。更加明确地体现了系统内部结构,更加清晰地理清内部逻辑关系。整个水果商城系统根据需求分析分为前台用户子系统和后台管理子系统。
前台功能结构
前台用户子系统又分为账户管理、搜索商品、购物车管理、订单管理、个人信息管理等模块,每个模块再向下细化为一个个简单的功能单元。
前台功能结构图
后台功能结构
后台管理子系统又分为商品类型管理、商品管理、订单管理、用户管理、留言管理、公告管理等模块,每个模块再向下细化为一个个简单的功能单元。
后台功能结构图
表结构设计
购物车表(car)
购物车表的属性是购物车id、商品id、用户id、商品数量、商品单价、商品总价,其中购物车id是主键,商品id、用户id是外键。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 购物车id |
| item_id | int | 10 | 是 | 商品id |
| user_id | int | 10 | 是 | 用户id |
| num | int | 10 | 是 | 商品数量 |
| price | float | 10 | 是 | 商品单价 |
| total | float | 10 | 是 | 商品总价 |
评论表(comment)
评论表的属性包括评论id、商品id、用户id、内容、评论时间,其中评论id为主键,商品id与用户id为外键。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 | |
|---|
| id | int | 10 | 是 | 评论id | |
| item_id | int | 10 | 是 | 商品id | |
| user_id | int | 10 | 是 | 用户id | |
| content | varchar | 100 | 是 | 内容 | |
| addTime | varchar | 30 | 是 | 评论时间 | |
商品类目表(item_category)
商品类目表的属性包括商品类目id、商品名、商品父id、是否删除,其中商品类目id为主键,是否删除的状态有0和1两种状态,0表示未删除,1表示已删除,默认都是未删除的状态。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 商品类目id |
| name | varchar | 30 | 是 | 商品名 |
| pid | varchar | 10 | 是 | 商品父id |
| isDelete | int | 10 | 是 | 是否删除 |
商品表(item)
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 商品id |
| name | varchar | 40 | 是 | 商品名 |
| price | float | 10 | 是 | 价格 |
| scNum | int | 10 | 是 | 收藏数量 |
| gmNum | int | 10 | 是 | 购买数量 |
| ms | int | 10 | 是 | 描述 |
| url | varchar | 200 | 是 | |
| zk | int | 10 | 是 | 折扣 |
| category_id_one | int | 10 | 是 | 一级类目id |
| category_id_two | int | 10 | 是 | 二级类目id |
| isDelete | int | 10 | 是 | 是否删除 |
用户表(user)
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| | int | | 是 | 用户id |
| userName | varchar | 20 | 是 | 姓名 |
| passWord | varchar | 10 | 是 | 密码 |
| phone | varchar | 11 | 是 | 电话号码 |
| realName | varchar | 30 | 是 | 真实姓名 |
| sex | varchar | 10 | 是 | 性别 |
| adress | varchar | 11 | 是 | |
| email | varchar | 10 | 是 | 邮箱 |
商品订单表(item_order)
商品订单表的属性包括订单id、商品id、用户id、订单创建时间、订单总价、订单状态,其中订单id为主键,商品id和用户id为外键,订单状态有1、2和3三种状态,1表示未发货,2表示已发货,3表示已收货,默认为未发货的状态。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 订单id |
| item_id | int | 10 | 是 | 商品id |
| user_id | int | 10 | 是 | 用户id |
| addTime | varchar | 30 | 是 | 订单创建时间 |
| total | float | 20 | 是 | 订单总价 |
| status | int | | 是 | 订单状态 |
信息表(message)
信息表的属性包含留言id、姓名、电话号码、内容,其中留言id为主键。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 留言id |
| name | varchar | 30 | 是 | 姓名 |
| phone | varchar | 11 | 是 | 电话号码 |
| Content | varchar | 100 | 是 | 内容 |
订单明细表(order_detail)
订单明细表的属性包括订单id、商品id、用户id、商品状态、商品数量、订单总价,其中订单id为主键,商品id和用户id都是外键。商品状态有0和1这两种状态,0表示的是未退货,1表示的是已退货,默认都是未退货的状态。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 订单id |
| item_id | int | 10 | 是 | 商品id |
| user_id | int | 10 | 是 | 用户id |
| status | int | 10 | 是 | 商品状态 |
| num | int | 10 | 是 | 商品数量 |
管理员表(manage)
管理员表的属性包括管理员id、管理员名、管理员密码、真实姓名,其中管理员id为主键。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 管理员id |
| userName | varchar | 40 | 是 | 管理员名 |
| passWord | float | 10 | 是 | 管理员密码 |
| realName | int | 11 | 是 | 真实姓名 |
收藏表(sc)
收藏表的属性包括收藏id、用户id、商品id其中收藏id为主键,用户id和商品id为外键。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| | int | 10 | 是 | 收费编号 |
| item_id | int | 10 | 是 | 挂号编号 |
| user_id | int | 10 | 是 | 收费类型 |
公告表(news)
公告表的属性包括公告id、标题、内容、发表时间,其中公告id为主键。
| 字段名 | 数据类型 | 长度 | 非空 | 字段说明 |
| id | int | 10 | 是 | 公告id |
| name | varchar | 30 | 是 | 标题 |
| content | varchar | 100 | 是 | 内容 |
| addTime | datetime | | 是 | 发表时间 |