springboot mapper sql 分页 增删改查遇到的一些问题
第一步建表 ORD_GOODS:
/*
Navicat Premium Data Transfer
Source Server : javachen
Source Server Type : MySQL
Source Server Version : 50718
Source Host : cdb-4nug2mq6.cd.tencentcdb.com:10152
Source Schema : mkk
Target Server Type : MySQL
Target Server Version : 50718
File Encoding : 65001
Date: 11/04/2021 15:39:41
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for ORD_GOODS
-- ----------------------------
DROP TABLE IF EXISTS `ORD_GOODS`;
CREATE TABLE `ORD_GOODS` (
`GOODS_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品id',
`GOODS_NAME` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
`GOODS_ART` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品艺术名称',
`GOODS_PRICE` decimal(32, 8) NULL DEFAULT NULL COMMENT '商品真实价格',
`GOODS_MARKET_PRICE` decimal(32, 8) NULL DEFAULT NULL COMMENT '商品市场价格',
`GOODS_HISTORY_PRICE` decimal(32, 8) NULL DEFAULT NULL COMMENT '商品历史价格',
`GOODS_DESC` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品介绍',
`GOODS_IMG` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品图片',
`GOODS_IMGS` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品图片群',
`GOODS_VOLUME` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格-净体积',
`GOODS_CARRIER_AREA` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格-承载容器底面积',
`GOODS_CARRIER_HEIGHT` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格-承载容器高度',
`CREATED_BY` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`UPDATED_BY` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`STATUS` int(2) NOT NULL DEFAULT 0 COMMENT '商品状态 0筹备中 1正常可下单 2已售罄 3已下架',
`TENANT_ID` bigint(20) NOT NULL COMMENT '租户id',
`TYPE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品类型',
`GOODS_WEIGHT` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品重量',
PRIMARY KEY (`GOODS_ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1378344849365823492 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品表 商品表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of ORD_GOODS
-- ----------------------------
INSERT INTO `ORD_GOODS` VALUES (1, '商品名称', '5', 5.00000000, 5.00000000, 5.00000000, '5', 'https://fanyi.caiyunapp.com/static/img/logo-website.33fde8d.png', 'https://fanyi.caiyunapp.com/static/img/logo-website.33fde8d.png', '1', '1', '1', 1, '2021-04-03 14:54:31', 1, '2021-04-03 14:54:37', 0, 1, '555', 'aaa');
INSERT INTO `ORD_GOODS` VALUES (1378325926482386946, '商品', '', 0.00000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1, NULL, '0');
INSERT INTO `ORD_GOODS` VALUES (1378344849365823489, '商品2', '', 0.00000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1, NULL, '0');
INSERT INTO `ORD_GOODS` VALUES (1378344849365823490, '1', '1', 1.20000000, 1.30000000, 1.40000000, '1', NULL, NULL, '1', '1', '1', 1, '2021-04-11 14:33:04', NULL, NULL, 1, 1, NULL, '1');
SET FOREIGN_KEY_CHECKS = 1;
第二步 :引入返回json数据的公共类,可以放在entity文件里面 JsonResult:
package cn.nucun.order.pojo.entity;
import lombok.Data;
import lombok.experimental.Accessors;
//参考https://www.cnblogs.com/huanshilang/p/13063908.html
@Data
@Accessors(chain = true)
public class JsonResult<T> {
private T data;
private String code;
private String msg;
/**
* 若没有数据返回,默认状态码为0,提示信息为:操作成功!
*/
public JsonResult() {
this.code = "0";
this.msg = "操作成功!";
}
/**
* 若没有数据返回,可以人为指定状态码和提示信息
* @param code
* @param msg
*/
public JsonResult(String code, String msg) {
this.code = code;
this.msg = msg;
}
/**
* 有数据返回时,状态码为0,默认提示信息为:操作成功!
* @param data
*/
public JsonResult(T data) {
this.data = data;
this.code = "0";
this.msg = "操作成功!";
}
/**
* 有数据返回,状态码为0,人为指定提示信息
* @param data
* @param msg
*/
public JsonResult(T data, String msg) {
this.data = data;
this.code = "0";
this.msg = msg;
}
// 省略get和set方法
}第三步:创建文件目录检查controller,service,impl,mapper.bean/eneity,(resources)mapper.xml是不是正确
第四步:实体类驼峰命名
package cn.nucun.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 商品表 商品表
*
* @author chen
* @email fawufuwu@gmail.com
* @date 2021-03-09 22:59:34
*/
@Data
@TableName("ORD_GOODS")
@Accessors(chain = true)
@ApiModel(value = "商品表 商品表")
@EqualsAndHashCode(callSuper = true)
public class OrdGoodsEntity extends Model<OrdGoodsEntity> {
/**
* 商品id
*/
@TableId
@ApiModelProperty(value = "商品id")
private Long goodsId;
/**
* 商品名称
*/
@ApiModelProperty(value = "商品名称")
private String goodsName;
/**
* 商品类型
*/
@ApiModelProperty(value = "商品类型")
private String type;
/**
* 商品艺术名称
*/
@ApiModelProperty(value = "商品艺术名称")
private String goodsArt;
/**
* 商品真实价格
*/
@ApiModelProperty(value = "商品真实价格")
private BigDecimal goodsPrice;
/**
* 商品市场价格
*/
@ApiModelProperty(value = "商品市场价格")
private BigDecimal goodsMarketPrice;
/**
* 商品历史价格
*/
@ApiModelProperty(value = "商品历史价格")
private BigDecimal goodsHistoryPrice;
/**
* 商品介绍
*/
@ApiModelProperty(value = "商品介绍")
private String goodsDesc;
/**
* 商品图片
*/
@ApiModelProperty(value = "商品图片")
private String goodsImg;
/**
* 商品图片群
*/
@ApiModelProperty(value = "商品图片群")
private String goodsImgs;
/**
* 商品规格-重量
*/
@ApiModelProperty(value = "商品规格-重量")
private String goodsWeight;
/**
* 商品规格-净体积
*/
@ApiModelProperty(value = "商品规格-净体积")
private String goodsVolume;
/**
* 商品规格-承载容器底面积
*/
@ApiModelProperty(value = "商品规格-承载容器底面积")
private String goodsCarrierArea;
/**
* 商品规格-承载容器高度
*/
@ApiModelProperty(value = "商品规格-承载容器高度")
private String goodsCarrierHeight;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private Long createdBy;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdTime;
/**
* 更新人
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新人")
private Long updatedBy;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedTime;
/**
* 商品状态 0筹备中 1正常可下单 2已售罄 3已下架
* @see cn.nucun.order.pojo.constants.OrderFieldConstants.OrdGoods
*/
@ApiModelProperty(value = "商品状态 0筹备中 1正常可下单 2已售罄 3已下架")
private Integer status;
/**
* 租户id
*/
@ApiModelProperty(value = "租户id")
private Long tenantId;
}
第五步:controller:添加,删除,查找(分页,条件搜索),编辑
/**
* @param req
* pageno 当前页
* goodsName 查询条件
* pagesize 每页的记录条数
* @return
*/
@ResponseBody
@GetMapping("/page1")
public JsonResult<Map> goodslist(HttpServletRequest req) {
Map<String,Object> map=new HashMap<String,Object>();
Integer pageno = Integer.parseInt(req.getParameter("pageno"));
Integer pagesize = Integer.parseInt(req.getParameter("pagesize"));
String goodsName = req.getParameter("goodsName");
//分页查询
map.put("start", (pageno-1)*pagesize);
map.put("size", pagesize);
map.put("goodsName", goodsName);
//查询用户的信息
List<OrdGoodsEntity> goods= ordGoodsService.pageQueryData(map);
//总记录条数//查询用户信息的条数
int totalsize=ordGoodsService.pageQueryCount(map);
int totalno=0;
if(totalsize % pagesize==0) {
totalno=totalsize/pagesize;
}else {
totalno=totalsize/pagesize+1;
}
//返回
map.put("data",goods);//商品数据
map.put("totalno",totalno);最大页码
map.put("pageno",pageno);//当前页
map.put("pagesize",pagesize);//每页的记录条数
return new JsonResult<>(map);
}
/**
* 新增商品
*/
@ResponseBody
@PostMapping("/addgoods")
public int addgoods(HttpServletRequest req) {
Map<String,Object> map=new HashMap<String,Object>();
LoginUser user = redisService.getCacheObject(CacheConstants.LOGIN_TOKEN_KEY + SecurityUtils.getToken(ServletUtils.getRequest()));
String goodsName = req.getParameter("goodsName");
String goodsArt = req.getParameter("goodsArt");
BigDecimal goodsPrice = new BigDecimal(req.getParameter("goodsPrice"));
BigDecimal goodsMarketPrice = new BigDecimal(req.getParameter("goodsMarketPrice"));
BigDecimal goodsHistoryPrice = new BigDecimal(req.getParameter("goodsHistoryPrice"));
String goodsDesc = req.getParameter("goodsDesc");
String goodsVolume = req.getParameter("goodsVolume");
String goodsCarrierArea = req.getParameter("goodsCarrierArea");
String goodsCarrierHeight = req.getParameter("goodsCarrierHeight");
Integer status = Integer.parseInt(req.getParameter("status"));
Long createdBy = user.getUserid();
Long tenantId = new Long(req.getParameter("tenantId"));
String type = req.getParameter("type");
String goodsWeight = req.getParameter("goodsWeight");
OrdGoodsEntity addgoods = new OrdGoodsEntity();
addgoods.setGoodsName(goodsName);
addgoods.setGoodsArt(goodsArt);
addgoods.setGoodsPrice(goodsPrice);
addgoods.setGoodsMarketPrice(goodsMarketPrice);
addgoods.setGoodsHistoryPrice(goodsHistoryPrice);
addgoods.setGoodsDesc(goodsDesc);
addgoods.setGoodsVolume(goodsVolume);
addgoods.setGoodsCarrierArea(goodsCarrierArea);
addgoods.setGoodsCarrierHeight(goodsCarrierHeight);
addgoods.setCreatedBy(createdBy);
addgoods.setStatus(status);
addgoods.setTenantId(tenantId);
addgoods.setType(type);
addgoods.setGoodsWeight(goodsWeight);
return ordGoodsService.insertGoods(addgoods);
}
/**
* 商品删除
*/
@DeleteMapping("/delete")
public int deleteGoods(HttpServletRequest req){
Long goodsId = new Long(req.getParameter("goodsId"));
return ordGoodsService.deleteGoods(goodsId);
}
/**
* 商品编辑
*/
@ResponseBody
@PostMapping("/updategoods")
public int updateGoods(HttpServletRequest req){
LoginUser user = redisService.getCacheObject(CacheConstants.LOGIN_TOKEN_KEY + SecurityUtils.getToken(ServletUtils.getRequest()));
Long goodsId = new Long(req.getParameter("goodsId"));
String goodsName = req.getParameter("goodsName");
String goodsArt = req.getParameter("goodsArt");
BigDecimal goodsPrice = new BigDecimal(req.getParameter("goodsPrice"));
BigDecimal goodsMarketPrice = new BigDecimal(req.getParameter("goodsMarketPrice"));
BigDecimal goodsHistoryPrice = new BigDecimal(req.getParameter("goodsHistoryPrice"));
String goodsDesc = req.getParameter("goodsDesc");
String goodsVolume = req.getParameter("goodsVolume");
String goodsCarrierArea = req.getParameter("goodsCarrierArea");
String goodsCarrierHeight = req.getParameter("goodsCarrierHeight");
Integer status = Integer.parseInt(req.getParameter("status"));
Long createdBy = user.getUserid();
Long tenantId = new Long(req.getParameter("tenantId"));
String type = req.getParameter("type");
String goodsWeight = req.getParameter("goodsWeight");
OrdGoodsEntity addgoods = new OrdGoodsEntity();
addgoods.setGoodsId(goodsId);//更新goodsId
addgoods.setGoodsName(goodsName);
addgoods.setGoodsArt(goodsArt);
addgoods.setGoodsPrice(goodsPrice);
addgoods.setGoodsMarketPrice(goodsMarketPrice);
addgoods.setGoodsHistoryPrice(goodsHistoryPrice);
addgoods.setGoodsDesc(goodsDesc);
addgoods.setGoodsVolume(goodsVolume);
addgoods.setGoodsCarrierArea(goodsCarrierArea);
addgoods.setGoodsCarrierHeight(goodsCarrierHeight);
addgoods.setCreatedBy(createdBy);
addgoods.setStatus(status);
addgoods.setTenantId(tenantId);
addgoods.setType(type);
addgoods.setGoodsWeight(goodsWeight);
return ordGoodsService.updateGoods(addgoods);
}service:
List<OrdGoodsEntity> pageQueryData(Map<String, Object> map);
int pageQueryCount(Map<String, Object> map);
int insertGoods(OrdGoodsEntity addgoods);
int deleteGoods(Long goodsId);
int updateGoods(OrdGoodsEntity addgoods);service:impl
/**
* 商品列表
* @param
* @return
*/
@Override
public List<OrdGoodsEntity> pageQueryData(Map<String, Object> map) {
return ordGoodsMapper.pageQueryData(map);
}
/**
* 数量
* @param map
* @return
*/
@Override
public int pageQueryCount(Map<String, Object> map) {
return ordGoodsMapper.pageQueryCount();
}
/**
* 添加
* @param addgoods
*/
@Override
public int insertGoods(OrdGoodsEntity addgoods) {
return ordGoodsMapper.insertGoods(addgoods);
}
/**
* 删除
* @param goodsId
* @return
*/
@Override
public int deleteGoods(Long goodsId) {
return ordGoodsMapper.deleteGoods(goodsId);
}
/**
* 编辑
* @param addgoods
* @return
*/
@Override
public int updateGoods(OrdGoodsEntity addgoods) {
return ordGoodsMapper.updateGoods(addgoods);
}mapper:
List<OrdGoodsEntity> pageQueryData(Map<String, Object> map);
int pageQueryCount();
int insertGoods(OrdGoodsEntity addgoods);
int deleteGoods(Long goodsId);
int updateGoods(OrdGoodsEntity addgoods);第六步:mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.nucun.order.mapper.OrdGoodsMapper">
<resultMap type="cn.nucun.order.pojo.entity.OrdGoodsEntity" id="ordGoodsMap">
<result property="goodsId" column="GOODS_ID"/>
<result property="goodsName" column="GOODS_NAME"/>
<result property="typeId" column="TYPE_ID"/>
<result property="goodsArt" column="GOODS_ART"/>
<result property="goodsPrice" column="GOODS_PRICE"/>
<result property="goodsMarketPrice" column="GOODS_MARKET_PRICE"/>
<result property="goodsHistoryPrice" column="GOODS_HISTORY_PRICE"/>
<result property="goodsDesc" column="GOODS_DESC"/>
<result property="goodsImg" column="GOODS_IMG"/>
<result property="goodsImgs" column="GOODS_IMGS"/>
<result property="goodsWeight" column="GOODS_WEIGHT"/>
<result property="goodsVolume" column="GOODS_VOLUME"/>
<result property="goodsCarrierArea" column="GOODS_CARRIER_AREA"/>
<result property="goodsCarrierHeight" column="GOODS_CARRIER_HEIGHT"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="status" column="STATUS"/>
<result property="tenantId" column="TENANT_ID"/>
</resultMap>
<!--条件分页-->
<select id="pageQueryData" parameterType="java.util.Map" resultType="java.util.Map">
select GOODS_ID, GOODS_NAME, GOODS_ART, GOODS_PRICE, GOODS_MARKET_PRICE,GOODS_HISTORY_PRICE,GOODS_DESC, GOODS_IMG, GOODS_IMGS,GOODS_VOLUME, GOODS_CARRIER_AREA, GOODS_CARRIER_HEIGHT,CREATED_BY,UPDATED_BY,STATUS, TENANT_ID, GOODS_WEIGHT,UPDATED_TIME,CREATED_TIME from ORD_GOODS
<where>
1 = 1
<if test="goodsName != null and goodsName != ''">
AND GOODS_NAME like concat('%', #{goodsName}, '%')
</if>
</where>
order by GOODS_ID asc limit #{start},#{size}
</select>
<!--数量查询-->
<select id="pageQueryCount" parameterType="java.util.Map" resultType="java.lang.Integer">
select count(*) from ORD_GOODS
<where>
1 = 1
<if test="goodsName != null and goodsName != ''">
AND GOODS_NAME like concat('%', #{goodsName}, '%')
</if>
</where>
</select>
<!--添加-->
<insert id="insertGoods" parameterType="cn.nucun.order.pojo.entity.OrdGoodsEntity" useGeneratedKeys="true" keyProperty="goodsId" >
insert into ORD_GOODS(
<if test="goodsId != null and goodsId != 0">GOODS_ID,</if>
<if test="goodsName != null and goodsName != ''">GOODS_NAME,</if>
<if test="goodsPrice != null and goodsPrice != 0">GOODS_PRICE,</if>
<if test="goodsMarketPrice != null and goodsMarketPrice != 0">GOODS_MARKET_PRICE,</if>
<if test="goodsHistoryPrice != null and goodsHistoryPrice != 0">GOODS_HISTORY_PRICE,</if>
<if test="createdBy != null and createdBy != 0">CREATED_BY,</if>
<if test="status != null and status != 0">STATUS,</if>
<if test="tenantId != null and tenantId != 0">TENANT_ID,</if>
<if test="goodsArt != null and goodsArt != ''">GOODS_ART,</if>
<if test="goodsDesc != null and goodsDesc != ''">GOODS_DESC,</if>
<if test="goodsWeight != null and goodsWeight != ''">GOODS_WEIGHT,</if>
<if test="goodsVolume != null and goodsVolume != ''">GOODS_VOLUME,</if>
<if test="goodsCarrierArea != null and goodsCarrierArea != ''">GOODS_CARRIER_AREA,</if>
<if test="goodsCarrierHeight != null and goodsCarrierHeight != ''">GOODS_CARRIER_HEIGHT,</if>
CREATED_TIME
)values(
<if test="goodsId != null and goodsId != ''">#{goodsId},</if>
<if test="goodsName != null and goodsName != ''">#{goodsName},</if>
<if test="goodsPrice != null and goodsPrice != ''">#{goodsPrice},</if>
<if test="goodsMarketPrice != null and goodsMarketPrice != ''">#{goodsMarketPrice},</if>
<if test="goodsHistoryPrice != null and goodsHistoryPrice != ''">#{goodsHistoryPrice},</if>
<if test="createdBy != null and createdBy != ''">#{createdBy},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="tenantId != null and tenantId != ''">#{tenantId},</if>
<if test="goodsArt != null and goodsArt != ''">#{goodsArt},</if>
<if test="goodsDesc != null and goodsDesc != ''">#{goodsDesc},</if>
<if test="goodsWeight != null and goodsWeight != ''">#{goodsWeight},</if>
<if test="goodsVolume != null and goodsVolume != ''">#{goodsVolume},</if>
<if test="goodsCarrierArea != null and goodsCarrierArea != ''">#{goodsCarrierArea},</if>
<if test="goodsCarrierHeight != null and goodsCarrierHeight != ''">#{goodsCarrierHeight},</if>
sysdate()
)
</insert>
<!--删除-->
<delete id="deleteGoods" parameterType="Long">
delete from ORD_GOODS where GOODS_ID = #{goodsId}
</delete>
<!--编辑商品-->
<update id="updateGoods" parameterType="cn.nucun.order.pojo.entity.OrdGoodsEntity">
update ORD_GOODS
<set>
<if test="goodsPrice != null and goodsPrice != 0">GOODS_PRICE = #{goodsPrice},</if>
<if test="goodsMarketPrice != null and goodsMarketPrice != 0">GOODS_MARKET_PRICE = #{goodsMarketPrice},</if>
<if test="goodsHistoryPrice != null and goodsHistoryPrice != 0">GOODS_HISTORY_PRICE = #{goodsHistoryPrice},</if>
<if test="createdBy != null and createdBy != 0">CREATED_BY = #{createdBy},</if>
<if test="status != null and status != 0">STATUS = #{status},</if>
<if test="tenantId != null and tenantId != 0">TENANT_ID = #{tenantId},</if>
<if test="goodsArt != null and goodsArt != ''">GOODS_ART = #{goodsArt},</if>
<if test="goodsName != null and goodsName != ''">GOODS_NAME = #{goodsName},</if>
<if test="goodsDesc != null and goodsDesc != ''">GOODS_DESC = #{goodsDesc},</if>
<if test="goodsWeight != null and goodsWeight != ''">GOODS_WEIGHT = #{goodsWeight},</if>
<if test="goodsVolume != null and goodsVolume != ''">GOODS_VOLUME = #{goodsVolume},</if>
<if test="goodsCarrierArea != null and goodsCarrierArea != ''">GOODS_CARRIER_AREA = #{goodsCarrierArea},</if>
<if test="goodsCarrierHeight != null and goodsCarrierHeight != ''">GOODS_CARRIER_HEIGHT = #{goodsCarrierHeight},</if>
UPDATED_TIME = sysdate()
</set>
where GOODS_ID = #{goodsId}
</update>
</mapper>mapper这里要注意几点:
1,搜索语句,goodsName字符串搜索尽量用#,如果不行用双引号,或者$
2,添加语句,这里#{}里面的内容要跟实体类里面的字段一致(因为有可能实体类是驼峰命名,而数据库字段全是大写的情况)
测试成功(这里仅截图了查找,编辑的postman,其他两个也是正确的)


如果有什么疑问,可以一起学习。
版权声明:本文为qq_36774734原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。