黄冈建设网站,北京市建设集团有限公司,网站模板版权,网站统计代码放哪里Mybatis-plus手写SQL如何使用条件构造器和分页插件
前言#xff1a;在使用mybatis-plus过程中#xff0c;使用条件构造器和分页插件非常效率的提升开发速度#xff0c;但有些业务需要使用连表查询#xff0c;此时还想使用条件构造器和使用分页时应该如何操作呢#xff1f…Mybatis-plus手写SQL如何使用条件构造器和分页插件
前言在使用mybatis-plus过程中使用条件构造器和分页插件非常效率的提升开发速度但有些业务需要使用连表查询此时还想使用条件构造器和使用分页时应该如何操作呢
Mapper接口层
public interface BookOrderMapper extends BaseMapperPlusBookOrder, BookOrderVo {ListOrderApp getOrderAppList(Param(orderState) String orderState);PageOrderApp getOrderAppPage(PageOrderApp page, Param(Constants.WRAPPER) WrapperOrderApp wrapper);
}
xml层
select idgetOrderAppPage resultMaporderAppSELECT *FROMbook_order t2LEFT JOIN book_order_detail t1 ON t1.order_id t2.order_id and t1.del_flag 0LEFT JOIN t_sku t3 ON t1.sku_id t3.idLEFT JOIN books t4 ON t4.book_id t3.book_id${ew.customSqlSegment}/select调用 // 查询构造器,如果是连表查询的话建议使用QueryWrapper这样可以手动指定条件列名 例如t2.xxxboolean b !StringUtils.equals(orderState, 0);QueryWrapperOrderApp queryWrapper Wrappers.query(OrderApp.class);queryWrapper.eq(t2.user_id,userId);queryWrapper.eq(b,t2.order_state,orderState);queryWrapper.eq(t2.del_flag,0);queryWrapper.orderByDesc(t2.create_time);// 调用sqlPageOrderApp orderAppPage bookOrderMapper.getOrderAppPage(new Page(page, pageSize), queryWrapper);分页插件:
在返回结果使用Page T 即可
条件构造器:
mapper参数中添加 Param(Constants.WRAPPER) Wrapper T wrapper 实参传递QuerWrapper或LamdaQuerWrapper都可以在sql的最后方添加 sql片段: ${ew.customSqlSegment} (带where关键字) 或 ${ew.sqlSegment}不带where关键字