第1关:商品修改
任务描述
本关任务:实现修改商品功能。
相关知识
为了完成本关任务,你需要掌握:
- 修改商品;
- 功能实现。
修改商品
顾名思义,就是修改一个商品,如下图:
用户在前端输入数据提交到服务器,如果数据没有问题服务器就将数据修改到数据库。
功能实现
- dao 层修改数据库中商品信息:
@Update("update product set product_name=#{product_name},category_id=#{category_id}," +
"product_title=#{product_title},product_intro=#{product_intro},product_picture=#{product_picture}," +
"product_price=#{product_price},product_selling_price=#{product_selling_price},product_num=#{product_num}," +
"product_sales=#{product_sales},status=#{status} where product_id=#{product_id}")
int editProduct(Product product);
- service 层:
public interface ProductService {
//定义接口
int editProduct(Product product);
}
public int editProduct(Product product) {
//调用 dao 层接口并返回结果集
return productDao.editProduct(product);
}
- controller 层:
@RequestMapping(value = "/editProduct")
public int editProduct(@RequestBody Product product){
//调用 service 接口修改商品方法并返回结果集
return productService.editProduct(product);
}
- 数据库如下:
字段名称 类型 备注 product_id
int(11) NOT NULL AUTO_INCREMENT '商品id' product_name
char(100) NOT NULL '商品名' category_id
int(11) NOT NULL '类型id' product_title
char(30) NOT NULL '商品标题' product_intro
text NOT NULL '商品描述' product_picture
char(200) DEFAULT NULL '商品图片' product_price
decimal(10,2) NOT NULL '商品价格' product_selling_price
decimal(10,2) NOT NULL '商品售价' product_num
int(11) NOT NULL '商品存量' product_sales
int(11) NOT NULL '商品销售数量' status
int(11) DEFAULT NULL '商品状态'
编程要求
在右侧编辑器 ProductDao.java、ProductService.java 、ProductServiceImpl.java、ProductController.java 文件里 Begin-End 处根据提示补充代码。
测试说明
平台会对你编写的代码进行测试:发送请求检验结果集是否正确。 预期输入:
{
"product_id":"1",
"product_name":"Redmi K30",
"category_id":"1",
"product_title":"120Hz流速屏,全速热爱",
"product_intro":"120Hz高帧率流速屏/ 索尼6400万前后六摄 / 6.67小孔径全面屏 / 最高可选8GB+256GB大存储 / 高通骁龙730G处理器 / 3D四曲面玻璃机身 / 4500mAh+27W快充 / 多功能NFC",
"product_picture":"public/imgs/phone/Redmi-k30.png",
"product_price":"2000",
"product_selling_price":"1499",
"product_num":"100",
"product_sales":"1",
"status":"1"
}
预期输出: 1
开始你的任务吧,祝你成功!
ProductDao.java
package com.lxc.dao;
import com.lxc.entity.Product;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
@Repository
public interface ProductDao {
//修改用户表中的数据
//******************************Begin******************************/
@Update("update product set product_name=#{product_name},category_id=#{category_id}," +
"product_title=#{product_title},product_intro=#{product_intro},product_picture=#{product_picture}," +
"product_price=#{product_price},product_selling_price=#{product_selling_price},product_num=#{product_num}," +
"product_sales=#{product_sales},status=#{status} where product_id=#{product_id}")
int editProduct(Product product);
//******************************End******************************/
}
ProductService.java
package com.lxc.service;
import com.lxc.entity.Product;
import org.springframework.stereotype.Component;
@Component
public interface ProductService {
//定义修改商品信息 service 接口
//******************************Begin******************************/
int editProduct(Product product);
//******************************End******************************/
}
ProductServiceImpl.java
package com.lxc.service.impl;
import com.lxc.dao.ProductDao;
import com.lxc.entity.Page;
import com.lxc.entity.Product;
import com.lxc.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("productService")
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductDao productDao;
@Override
//调用 dao 层修改商品信息方法并返回结果集
//******************************Begin******************************/
public int editProduct(Product product) {
return productDao.editProduct(product);
}
//******************************End******************************/
}
ProductController.java
package com.lxc.controller;
import com.lxc.entity.Page;
import com.lxc.service.ProductService;
import com.lxc.entity.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/product")
public class ProductController {
@Autowired
Page<Product> page;
@Autowired
private ProductService productService;
/**
* 添加商品信息
* @param product
* @return
*/
//调用 service 层修改用户信息方法并返回结果集
//******************************Begin******************************/
@RequestMapping(value = "/editProduct")
public int editProduct(@RequestBody Product product){
//调用 service 接口修改商品方法并返回结果集
return productService.editProduct(product);
}
//******************************End******************************/
}
Product.java
package com.lxc.entity;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class Product implements Serializable {
private int product_id;
private String product_name;
private int category_id;
private String product_title;
private String product_intro;
private String product_picture;
private BigDecimal product_price; //原价
private BigDecimal product_selling_price; //售价
private int product_num;
private int product_sales;
private int status;
}
加油哦,同学们!