动态SQL语句

目录

新增数据动态SQL

删除数据动态SQL

修改数据动态SQL

查询数据动态SQL

集合中接受的对象

查询数据SQL语句


mapper层的SQL采用xml文件

新增数据动态SQL

// 新增订单项(order_item)的方法
    // 一个订单可能包含多个订单项,如果循环遍历新增每一个订单项,连库次数多,效率降低
    // 我们采用一次连库新增多条订单项的方法,完成这个业务,来提高数据库操作效率
    // 也就是进行批量新增,这个方法的参数就是一个List集合了

    int insertOrderItemList(List omsOrderItems);


    
    
        insert into oms_order_item(
         id,order_id,sku_id,title,bar_code,
         data,main_picture,price,quantity
        ) values
                  
                      (
                       #{ooi.id},
                      #{ooi.orderId},
                      #{ooi.skuId},
                      #{ooi.title},
                      #{ooi.barCode},
                      #{ooi.data},
                      #{ooi.mainPicture},
                      #{ooi.price},
                       #{ooi.quantity}
                      )
                  
    

新增数据的对象

/**
* 

* 订单商品数据表 *

* * @author * @since 2022-02-16 */ @Data public class OmsOrderItem implements Serializable { private static final long serialVersionUID = 1L; private Long id; /** * 订单id */ private Long orderId; /** * SKU id */ private Long skuId; /** * 商品SKU标题(冗余,历史) */ private String title; /** * 商品SKU商品条型码(冗余) */ private String barCode; /** * 商品SKU全部属性,使用JSON格式表示(冗余) */ private String data; /** * 商品SKU图片URL(第1张)(冗余) */ private String mainPicture; /** * 商品SKU单价(冗余,历史) */ private BigDecimal price; /** * 商品SKU购买数量 */ private Integer quantity; /** * 数据创建时间 */ private LocalDateTime gmtCreate; /** * 数据最后修改时间 */ private LocalDateTime gmtModified; }

删除数据动态SQL

// 根据用户选中的id,删除购物车中的商品(支持一次删除多个商品)
//如果使用的是数组则在xml中的是array,如果使用的是List则在xml中使用的是list
int deleteCartByIds(Long[] ids);




delete
from oms_cart
where id in

#{id}

修改数据动态SQL

// 动态修改订单,参数是omsOrder对象
    // 参数对象中必须有id,id不可修改,其他属性不为空就修改为当前属性值
    int updateOrderById(OmsOrder order);


    
    
    
        update oms_order
        
            
                contact_name=#{contactName},
            
            
                mobile_phone=#{mobilePhone},
            
            
                telephone=#{telephone},
            
            
                street_code=#{streetCode},
            
            
                street_name=#{streetName},
            
            
                detailed_address=#{detailedAddress},
            
            
                tag=#{tag},
            
            
                payment_type=#{paymentType},
            
            
                state=#{state},
            
            
                reward_point=#{rewardPoint},
            
            
                amount_of_original_price=#{amountOfOriginalPrice},
            
            
                amount_of_freight=#{amountOfFreight},
            
            
                amount_of_discount=#{amountOfDiscount},
            
            
                amount_of_actual_pay=#{amountOfActualPay},
            
            
                gmt_pay=#{gmtPay},
            
        
        where
        id=#{id}
    

查询数据动态SQL

// 查询当前用户指定时间范围内的所有订单信息(包含订单项)
    List selectOrderBetweenTimes(OrderListTimeDTO orderListTimeDTO);


    

    

    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
            
            
            
            
            
            
        
    

集合中接受的对象

/**
 * 

* 查询我的订单展示订单数据 * 包括 订单id 编号 用户id,收货人姓名 状态,金额,下单时间 *

* * @author * @since 2022-02-16 */ @Data @ApiModel(value="") public class OrderListVO implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value="订单id") private Long id; /** * 订单编号 */ @ApiModelProperty(value="订单编号") private String sn; /** * 用户id */ @ApiModelProperty(value="用户id") private Long userId; /** * 联系人姓名(冗余,历史) */ @ApiModelProperty(value="联系人姓名") private String contactName; /** * 状态,0=未支付,1=已关闭(超时未支付),2=已取消,3=已支付,4=已签收,5=已拒收,6=退款处理中,7=已退款 */ @ApiModelProperty(value="状态,0=未支付,1=已关闭(超时未支付),2=已取消,3=已支付,4=已签收,5=已拒收,6=退款处理中,7=已退款",example = "0") private Integer state; /** * 实际支付 */ @ApiModelProperty(value="实际支付") private BigDecimal amountOfActualPay; /** * 下单时间 */ @ApiModelProperty(value="下单时间") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime gmtOrder; /** * 创建时间 */ @ApiModelProperty(value="创建订单时间") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime gmtCreate; /** * 支付时间 */ @ApiModelProperty(value="支付时间") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime gmtPay; /** * 修改时间 */ @ApiModelProperty(value="修改时间") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime gmtModified; /** * 订单商品列表 */ private List orderItems; }

查询数据SQL语句

mapper层的抽象方法

/**
     * 查询品牌列表
     *
     * @return 品牌列表,如果没有匹配的数据,将返回长度为0的列表
     */
    List list();

xml的sql语句






  
    pms_brand.id,
    pms_brand.name,
    pms_brand.pinyin,
    pms_brand.logo,
    pms_brand.description,
    pms_brand.keywords,
    pms_brand.sort,
    pms_brand.sales,
    pms_brand.product_count,
    pms_brand.comment_count,
    pms_brand.positive_comment_count,
    pms_brand.enable
  




  
  
  
  
  
  
  
  
  
  
  
  

关注博主订阅专栏学习Node不迷路!

如果本篇文章对你有所帮助,还请客官一件三连!❤️

你可能感兴趣的:(sql,mybatis,数据库)