Mybatis-plus手写SQL如何使用条件构造器和分页

Mybatis-plus手写SQL如何使用条件构造器和分页插件

前言:在使用mybatis-plus过程中,使用条件构造器和分页插件非常效率的提升开发速度,但有些业务需要使用连表查询,此时还想使用条件构造器和使用分页时应该如何操作呢?

Mapper接口层

java 复制代码
public interface BookOrderMapper extends BaseMapperPlus<BookOrder, BookOrderVo> {
    List<OrderApp> getOrderAppList(@Param("orderState") String orderState);

    Page<OrderApp> getOrderAppPage(Page<OrderApp> page, @Param(Constants.WRAPPER) Wrapper<OrderApp> wrapper);
}

xml层

xml 复制代码
<select id="getOrderAppPage" resultMap="orderApp">
        SELECT *
        FROM
        book_order t2
        LEFT JOIN book_order_detail t1 ON t1.order_id = t2.order_id and t1.del_flag = 0
        LEFT JOIN t_sku t3 ON t1.sku_id = t3.id
        LEFT JOIN books t4 ON t4.book_id = t3.book_id
        ${ew.customSqlSegment}
    </select>

调用

java 复制代码
        // 查询构造器,如果是连表查询的话建议使用QueryWrapper,这样可以手动指定条件列名 例如:t2.xxx
        boolean b = !StringUtils.equals(orderState, "0");
        QueryWrapper<OrderApp> 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");

        // 调用sql
        Page<OrderApp> orderAppPage = bookOrderMapper.getOrderAppPage(new Page<>(page, pageSize), queryWrapper);

分页插件:

在返回结果使用Page< T >即可

条件构造器:

  1. mapper参数中添加 @Param(Constants.WRAPPER) Wrapper< T > wrapper (实参传递QuerWrapper或LamdaQuerWrapper都可以)
  2. 在sql的最后方添加 sql片段: {ew.customSqlSegment} (带**where** 关键字) 或 {ew.sqlSegment}(不带where关键字)
相关推荐
电商API_180079052474 分钟前
反向海淘是什么?现状如何?未来趋势如何?
数据库·人工智能·笔记·性能优化·数据挖掘·网络爬虫
MRSM_014 分钟前
Redis 缓存、队列、排行榜的核心用法
数据库·redis·缓存
唐青枫4 分钟前
别让 NULL 拖垮结果:MySQL COALESCE 空值兜底实战详解
sql·mysql
Trouvaille ~6 分钟前
【Redis篇】Redis 安装与启动:快速搭建一个 Redis 环境
数据库·redis·后端·ubuntu·缓存·环境搭建·安装教程
fengxin_rou11 分钟前
【Feed 高并发架构实战】:雪花 ID + 三级缓存 + 计数旁路设计详解
数据库·redis·缓存·架构·事务·并发
wand codemonkey1 小时前
SpringbootWeb【入门】+MySQL【安装】+【DataDrip安装 】+【连接MySQL】
java·mysql·mybatis
廿一夏9 小时前
MySql存储引擎与索引
数据库·sql·mysql
lzhdim11 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室11 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
TDengine (老段)12 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据