springboot mapper sql 分页 增删改查遇到的一些问题

       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版权协议,转载请附上原文出处链接和本声明。