MyBatisPlus 自定义Sql

利用MybatisPlus的Wrapper来构建复杂的Where条件,然后自定义Sql语句中剩余的部分

 

1.基于Wrapper构建where条件

复制代码
LambdaQueryWrapper<ShippingOrderEntity> queryWrapper = new LambdaQueryWrapper<>();
        
//姓名-模糊
queryWrapper.like(StringUtils.isNotBlank(shippingOrderListDTO.getUserName()),ShippingOrderEntity::getUserName,shippingOrderListDTO.getUserName());
        
//手机号-模糊
queryWrapper.like(StringUtils.isNotBlank(shippingOrderListDTO.getPhone()),ShippingOrderEntity::getPhone,shippingOrderListDTO.getPhone());
        
//配送方式-精确
queryWrapper.eq(null != shippingOrderListDTO.getTakeType(),ShippingOrderEntity::getTakeType,shippingOrderListDTO.getTakeType());
        
//运单状态-精确
queryWrapper.eq(null != shippingOrderListDTO.getStatus(),ShippingOrderEntity::getStatus,shippingOrderListDTO.getStatus());\

shippingOrderMapper.queryShippingOrderList(queryWrapper);
复制代码

 

2.在mapper方法中用Param注解声明wrapper变量名称,必须是ew

List<ShippingOrderVO> queryShippingOrderList(@Param("ew") LambdaQueryWrapper<ShippingOrderEntity> queryWrapper);

 

3.自定义Sql,并使用Wrapper条件

<select id="queryShippingOrderList" resultType="com.fancy.portal.bean.vo.ShippingOrderVO">
  select
     <include refid="shippingOrderColumn" />
       from GZH_SHIPPING GS
     <where>
          ${ew.sqlSegment}
        </where>
</select>

 

posted @   七彩鱼丸  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2020-10-28 Webuploader 简单图片上传 支持多图上传
点击右上角即可分享
微信分享提示