当前位置: 首页 > news >正文

SpringBoot入门实战(第七篇:项目接口-商品管理)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • SpringBoot入门实战(第七篇:项目接口-商品管理)
    • 1. 建表
    • 2. 接口创建(GoodsInfoController.java)
    • 3. 接口测试
      • 3.1 **新增商品数据**
      • 3.2 **查询商品数据**
      • 3.3 **更新商品数据**
      • 3.4 **移除商品数据**


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

SpringBoot入门实战(第七篇:项目接口-商品管理)

SpringBoot入门实战系列篇专栏
SpringBoot入门实战(第一篇:环境准备和项目初始化)
SpringBoot入门实战(第二篇:MySQL集成配置)
SpringBoot入门实战(第三篇:MyBatis集成配置,自动生成代码配置)
SpringBoot入门实战(第四篇:Redis集成配置)
SpringBoot入门实战(第五篇:项目接口-用户管理)
SpringBoot入门实战(第六篇:项目接口-登录)
SpringBoot入门实战(第七篇:项目接口-商品管理)
SpringBoot入门实战(第八篇:项目接口-订单管理)完结篇
SpringBoot入门实战(项目搭建、配置、功能接口实现等一篇通关)


商品管理部分

1. 建表

创建商品表tb_goods

CREATE TABLE tb_goods(id INT AUTO_INCREMENT PRIMARY KEY,g_id INT NOT NULL COMMENT "商品id",g_name VARCHAR(255) NOT NULL COMMENT "商品名称",g_category VARCHAR(255) NOT NULL COMMENT "商品分类",g_price DOUBLE NOT NULL COMMENT "商品价格",g_inventory INT NOT NULL COMMENT "商品库存",g_status VARCHAR(255) NOT NULL COMMENT "商品状态"
);

2. 接口创建(GoodsInfoController.java)

原来项目的商品包名叫product,不是很准确,现在改成goods
在com.xh.goods.dao包下根据表tb_goods生成代码,配置好注解后
在com.xh.goods.controller包下创建商品管理类GoodsInfoController.java
代码如下

package com.xh.goods.controller;import com.alibaba.fastjson.JSONObject;
import com.xh.goods.dao.TbGoods;
import com.xh.goods.dao.TbGoodsImpl;
import com.xh.goods.dao.TbGoodsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** @func:* @author: LiBai* @version: v1.0* @createTime: 2025/4/18 10:55*/
@CrossOrigin
@RestController
@RequestMapping(value = "/xh/v1/goods")
public class GoodsInfoController {@AutowiredTbGoodsMapper tbGoodsMapper;@PostMapping(value = "/addGoodsInfo")public JSONObject addGoodsInfo(@RequestBody JSONObject requestBody){String gName = requestBody.getString("gName");TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();TbGoodsImpl.Criteria criteria = tbGoodsImpl.createCriteria();criteria.andGNameEqualTo(gName);List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);JSONObject result = new JSONObject();if (tbGoodsList.isEmpty()){tbGoodsMapper.insert(JSONObject.parseObject(requestBody.toJSONString(),TbGoods.class));result.put("code", 200);result.put("data", requestBody);result.put("msg", "新增商品信息");}else{result.put("code", 4000);result.put("data", "");result.put("msg", "新增商品信息失败,此商品数据已存在");}return result;}@GetMapping(value = "/readGoodsInfo")public JSONObject readGoodsInfo(){TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);JSONObject result = new JSONObject();if (!tbGoodsList.isEmpty()){result.put("code", 200);result.put("data", tbGoodsList);result.put("msg", "查询商品信息");}else{result.put("code", 4000);result.put("data", "");result.put("msg", "查询商品信息失败,无商品数据");}return result;}@PutMapping(value = "/changeGoodsInfo")public JSONObject changeGoodsInfo(@RequestBody JSONObject requestBody){int gId = requestBody.getInteger("gId");TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();TbGoodsImpl.Criteria criteria = tbGoodsImpl.createCriteria();criteria.andGIdEqualTo(gId);List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);JSONObject result = new JSONObject();if (!tbGoodsList.isEmpty()){tbGoodsMapper.updateByExampleSelective(JSONObject.parseObject(requestBody.toJSONString(), TbGoods.class),tbGoodsImpl);result.put("code", 200);result.put("data", requestBody);result.put("msg", "更新商品数据");}else{result.put("code", 4000);result.put("data", "");result.put("msg", "更新商品数据失败,无此商品数据");}return result;}@DeleteMapping(value = "/removeGoodsInfo")public JSONObject removeGoodsInfo(@RequestBody JSONObject requestBody){int gId = requestBody.getInteger("gId");TbGoodsImpl tbGoodsImpl = new TbGoodsImpl();TbGoodsImpl.Criteria criteria = tbGoodsImpl.createCriteria();criteria.andGIdEqualTo(gId);List<TbGoods> tbGoodsList = tbGoodsMapper.selectByExample(tbGoodsImpl);JSONObject result = new JSONObject();if (!tbGoodsList.isEmpty()){tbGoodsMapper.deleteByExample(tbGoodsImpl);result.put("code", 200);result.put("data", requestBody);result.put("msg", "删除商品数据");}else{result.put("code", 4000);result.put("data", "");result.put("msg", "删除商品数据失败,无此商品数据");}return result;}
}

3. 接口测试

3.1 新增商品数据

url

127.0.0.1:8088/xh/v1/goods/addGoodsInfo

请求类型

POST

请求参数

{"gId": 100001,"gName": "海洋至尊洗面奶","gCategory": "护肤品","gPrice": 46.90,"gInventory": 98,"gStatus": "上架"}

postman截图
在这里插入图片描述

3.2 查询商品数据

url

127.0.0.1:8088/xh/v1/goods/readGoodsInfo

请求类型

GET

请求参数 空


postman截图
在这里插入图片描述

3.3 更新商品数据

url

127.0.0.1:8088/xh/v1/goods/updateGoodsInfo

请求类型

PUT

请求参数

{"gId": 100002,"gName": "韩束男士补水保湿乳","gCategory": "护肤品","gPrice": 90.98,"gInventory": 58,"gStatus": "上架"}

postman截图
在这里插入图片描述

3.4 移除商品数据

url

127.0.0.1:8088/xh/v1/goods/removeGoodsInfo

请求类型

DELETE

请求参数

{"gId":"100001"
}

postman截图
在这里插入图片描述


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

http://www.xdnf.cn/news/107605.html

相关文章:

  • 考研单词笔记 2025.04.23
  • es的range失效
  • 如何在Spring Boot中实现热加载以避免重启服务器
  • 数据治理体系的“三驾马车”:质量、安全与价值挖掘
  • 武汉昊衡科技OLI光纤微裂纹检测仪:高密度光器件的精准守护者
  • JavaWeb学习打卡-Day2-Mysql索引、事务
  • 浅试MCP:spring ai使用mcp调用deepseek的API接口
  • IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
  • element-ui transfer 组件源码分享
  • 永磁同步电机控制算法--零d轴电流IF控制
  • 幂等性设计保障系统可靠性和数据一致性
  • 顺序表专题
  • 结合地理数据处理
  • 数据流量采集系统的实现
  • 为什么Spring中@Bean注解默认创建单例Bean
  • TORL:解锁大模型推理新境界,强化学习与工具融合的创新变革
  • 将 MySQL 8 主从复制延迟优化到极致
  • cgdb的基础使用教程
  • 制造业数字化转型标杆解析:从冀凯机电到君乐宝的启示
  • Java类加载器(ClassLoader)及其相关类 简介
  • 【C++】AVL树
  • 《从卷积核到数字解码:CNN 手写数字识别实战解析》
  • 蚊子的搜索距离可达60公里:对一些特殊气味有所偏爱
  • 短说社区V5.2.1正式版发布|修复已知问题
  • 品牌名凭空消失?3步破解亚马逊前台标题隐藏危机
  • 在Linux驱动开发中使用DeepSeek的方法
  • 智能指针(shared_ptr)之二
  • 18487.1-2015-解读笔记五-交流充电之停止充电
  • 详解 synchronized 关键字【通俗易懂】
  • 前端常见问题