博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍:

该系统创作于2022年2月,包含详细数据库设计。 基于springboot,数据层为MyBatis,mysql数据库,具有完整的业务逻辑。

项目功能:

用户:
登录注册系统
查看热门商品及最新商品
可以查看所有商品
以一级或二级分类查看商品
可以根据关键词搜索商品
查看商品详情,选择订购数量,加入购物车
查看个人中心或者修改个人信息
查看个人订单或详情,并可对订单状态操作
查看购物车,并可以下单
退出登录后台管理员:
登录
用户管理:维护用户信息
分类管理:包含一级和二级分类的维护
订单管理:可以查看订单的详细信息,并可以操作状态
商品管理:可以维护商品信息
资讯管理:维护资讯信息
管理员管理:可以内部新增及维护管理员
退出登录

数据库表结构文档:

系统包含技术:

后端:SpringBoot+MyBatis
前端:BootStrap,Layui,js,css等
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是首页

登录操作

所有商品查看

分类查看

详情商品

资讯查看

购物车

我的订单

后台-首页

后台-用户管理

后台-分类管理

后台-商品管理

后台-订单管理

部分代码:

异常处理

package com.mty.medicine.aspect;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartException;
import com.mty.medicine.entity.pojo.ResultBean;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.io.Serializable;
import java.util.Set;/*** 统一异常处理* 在Controller中抛出的异常,GlobalExceptionHandler中定义的处理方法可以起作用* 其他的业务层异常也可以单独处理*/
@ControllerAdvice
public class GlobalExceptionHandler implements Serializable{private static final long serialVersionUID = 1L;private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class);/*** 默认的异常处理** @param req* @param e* @return* @throws Exception*/@ExceptionHandler(value = Exception.class)@ResponseBodypublic ResultBean<String> defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {//记录日志LOGGER.error(e.getMessage(), e);e.printStackTrace();ResultBean<String> r = new ResultBean<>(e);r.setData(req.getRequestURI());return r;}@ExceptionHandler(value = RuntimeException.class)public void runtimeExceptionHandler(HttpServletRequest req, HttpServletResponse res, Exception e) throws Exception {//记录日志LOGGER.error(e.getMessage(), e);req.setAttribute("msg", e.getMessage());//转发到error页面req.getRequestDispatcher("/mall/user/error.html").forward(req, res);}/*** 处理validation异常** @param req* @param e* @return* @throws Exception*/@ExceptionHandler(value = ConstraintViolationException.class)@ResponseBodypublic ResultBean<String> validationExceptionHandler(HttpServletRequest req, ConstraintViolationException e) throws Exception {Set<ConstraintViolation<?>> violations = e.getConstraintViolations();StringBuilder strBuilder = new StringBuilder();for (ConstraintViolation<?> violation : violations) {strBuilder.append(violation.getMessage() + ",");}LOGGER.error(strBuilder.toString(), e);ResultBean<String> r = new ResultBean(strBuilder.toString());r.setData(req.getRequestURI());return r;}}

商品操作

package com.mty.medicine.web.user;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.mty.medicine.entity.Classification;
import com.mty.medicine.entity.OrderItem;
import com.mty.medicine.entity.Product;
import com.mty.medicine.entity.pojo.ResultBean;
import com.mty.medicine.service.ClassificationService;
import com.mty.medicine.service.ProductService;
import com.mty.medicine.service.ShopCartService;import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;@Controller
@RequestMapping("/product")
public class ProductController {@Autowiredprivate ProductService productService;@Autowiredprivate ClassificationService classificationService;@Autowiredprivate ShopCartService shopCartService;/*** 获取商品信息** @param id* @return*/@RequestMapping("/get.do")public ResultBean<Product> getProduct(int id) {Product product = productService.findById(id);return new ResultBean<>(product);}/*** 打开商品详情页面** @param id* @param map* @return*/@RequestMapping("/get.html")public String toProductPage(int id, Map<String, Object> map) {Product product = productService.findById(id);map.put("product", product);return "mall/product/info";}/*** 查找热门商品** @return*/@ResponseBody@RequestMapping("/hot.do")public ResultBean<List<Product>> getHotProduct(int pageNo, int pageSize) {List<Product> products = productService.findHotProduct(pageNo, pageSize);return new ResultBean<>(products);}/*** 查找最新商品** @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/new.do")public ResultBean<List<Product>> getNewProduct(int pageNo, int pageSize) {List<Product> products = productService.findNewProduct(pageNo, pageSize);return new ResultBean<>(products);}/*** 查找所有商品** @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/all.do")public ResultBean<List<Product>> getAllProduct(int pageNo, int pageSize) {List<Product> products = productService.findAllProduct(pageNo, pageSize);return new ResultBean<>(products);}/*** 搜索商品** @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/search.do")public ResultBean<List<Product>> search(int pageNo, int pageSize,String keyword) {List<Product> products = productService.search(pageNo, pageSize,keyword);return new ResultBean<>(products);}/*** 打开分类查看商品页面** @return*/@RequestMapping("/category.html")public String toCatePage(int cid, Map<String, Object> map) {Classification classification = classificationService.findById(cid);map.put("category", classification);return "mall/product/category";}/*** @Description: 进入购物车* @Param: []* @return: java.lang.String* @Author: Mr.Wang* @Date: 2020/12/19*/@RequestMapping("/toCart.html")public String toCart(){return "mall/product/cart";}/*** 按一级分类查找商品** @param cid* @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/category.do")public ResultBean<List<Product>> getCategoryProduct(int cid, int pageNo, int pageSize) {List<Product> products = productService.findByCid(cid, pageNo,pageSize);return new ResultBean<>(products);}/*** 按二级分类查找商品** @param csId* @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/categorySec.do")public ResultBean<List<Product>> getCategorySecProduct(int csId, int pageNo, int pageSize) {List<Product> products = productService.findByCsid(csId, pageNo,pageSize);return new ResultBean<>(products);}/*** 根据一级分类查询它所有的二级分类* @param cid* @return*/@ResponseBody@RequestMapping("/getCategorySec.do")public ResultBean<List<Classification>> getCategorySec(int cid){List<Classification> list = classificationService.findByParentId(cid);return new ResultBean<>(list);}/*** 加购物车** @param productId* @param request* @return*/@ResponseBody@RequestMapping("/addCart.do")public ResultBean<Boolean> addToCart(int productId,int number, HttpServletRequest request) throws Exception {shopCartService.addCart(productId,number, request);return new ResultBean<>(true);}/*** 移除购物车** @param request* @return*/@ResponseBody@RequestMapping("/delCart.do")public ResultBean<Boolean> delToCart(String cartId, HttpServletRequest request) throws Exception {shopCartService.remove(cartId, request);return new ResultBean<>(true);}/*** 查看购物车商品* @param request* @return*/@ResponseBody@RequestMapping("/listCart.do")public ResultBean<List<OrderItem>> listCart(HttpServletRequest request) throws Exception {List<OrderItem> orderItems = shopCartService.listCart(request);return new ResultBean<>(orderItems);}}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

基于springboot的水果商城系统相关推荐

  1. 毕业设计之基于springboot的开源商城系统

    一.介绍 本项目是一个基于springboot的开源商城系统 ,前后端分离. 二.功能模块 平台端 管理端 用户手机端 首页 会员 订单 商品 促销 店铺 运营 统计 设计 三.技术架构 前端 vue ...

  2. 基于SpringBoot的迷你商城系统,附源码!

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 2 分钟. 上次已经给大家分享了一个基于ssm的商城系统. 小伙伴后台私信我:能不能分享一个基于springboot的项目源码 ...

  3. 鲜花商城|基于Springboot实现鲜花商城系统

    作者主页:编程千纸鹤 作者简介:Java.前端.Pythone开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好 ...

  4. 基于springboot mybatis网上商城系统源码和论文

    伴随着互联网技术的进步,各种电商平台也如雨后 春笋不断涌现.一个好的电商平台应该具有用户体验度高,用户信息安全等特点, 从而可以满足更多的用户需求.现有的电商平台虽然在不断完善,但仍然存在着 不少问题 ...

  5. 基于Springboot实现茶叶商城系统

    作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家  Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-SC-013 系统整体介绍: 网络购物己经成 ...

  6. 酒水商城|基于Springboot实现酒水商城系统

    项目编号:BS-SC-036 一,项目简介 系统整体介绍: 本系统主要基于Springboot框架开发实现,实现了一个以茶叶为主题的商城系统.在本商城系统中,可以实现在线购买酒水,在线支付,管理个人订 ...

  7. 基于springboot+vue的商城系统(电商平台)(前后端分离)

    博主主页:猫头鹰源码 博主简介:Java领域优质创作者.CSDN博客专家.公司架构师.全网粉丝5万+.专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等).简历模 ...

  8. 基于ssm的水果商城系统项目总结

    SSM水果商城 项目介绍 因为我先学过了ssm的基础知识,所以找了个ssm项目来练练手,加深对框架的理解. 由于我也是手敲所以暂时没有感觉到与javaweb比优势在哪,但是了解过之后,框架之所以是框架 ...

  9. 基于java的水果商城系统 水果销售系统

    水果销售商城平台的实现可以使客户足不出户就能了解各种水果信息,比较商品的价格,营养价值等,轻松方便购买本文以Java+ssm+jsp+mysql为开发技术,实现了一个水果销售管理网站 .水果销售管理网 ...

最新文章

  1. BurpSuite实例教程讲解
  2. mockito_Mockito 101
  3. oracle cluster n,10g Rac的cluster_interconnect信息
  4. MySql数据备份与恢复
  5. CMake基础 第5节 安装项目
  6. jquery(js) 增加 删除 修改属性样式、元素内容
  7. 1015 德才论 (25分)
  8. opporeno3pro可以刷鸿蒙系统吗,华为P40放大招!鸿蒙系统+120Hz+徕卡五摄,明年2月发布!...
  9. 2016 China Collegiate Programming Contest Final
  10. MUI - 自动轮播图 实现
  11. 看电影的计算机配置,专门看电影的电脑主机需要什么配置?
  12. 读JavaScript高级程序设计感受
  13. WI-FI密码破解-奶瓶
  14. 计算机房 噪声 标准,机房的噪音检测标准及治理方法
  15. 工业互联网,姓工,名互
  16. 3D模型【茶几垫子】
  17. 经纬度差和米单位的换算
  18. Fedora Firefox flash-player插件安装
  19. 动态规划-多边形游戏算法
  20. ida符号文件路径设置

热门文章

  1. Codeforces Round #636 (Div. 3) 题解
  2. java接口幂等性设计
  3. mysql join和视图区别_JOIN与视图
  4. 华为持续突破,事实证明谁也阻止不了它前进的脚步
  5. 利用PyQt5制作简易二维码生成器
  6. mac电脑数据恢复?真正实用的方法(2023最新)
  7. 【图像处理】【SEED-VPM】6.文件目录结构
  8. 小程序--页面分享功能传参踩坑
  9. 民族表演艺术类毕业论文文献包含哪些?
  10. go-ethereum源码解析