springboot+mybatis-plus 自定义分页+条件构造器+xml自定义sql的使用

本文介绍如何使用 MyBatis Plus 进行分页查询,包括在 mapper.java 中定义分页方法及在 mapper.xml 中编写对应的 SQL 语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在mapper.java中定义一个方法,如:

IPage<MembershipYearCalendar> getPageList(Page<MembershipYearCalendar> page, @Param(Constants.WRAPPER) Wrapper<MembershipYearCalendar> queryWrapper);

其中page是分页对象,返回的也必须是IPage类型,queryWrapper为条件构造对象
2、在mapper.xml中定义sql语句,如:

 <select id="getPageList" resultMap="BaseMap">
     SELECT t.* FROM
         (
             SELECT
             t.id,
             t.NAME,
             t.enterprise,
             t.belong_to_people,
             CASE
                     WHEN t1.service_count IS NULL THEN
                     0 ELSE t1.service_count
                 END service_count,
          (SELECT matter FROM member_matter m where m.member_of_the_pool_id=t.id order by create_date desc limit 0,1) matter,
       (SELECT service_date FROM member_matter m where m.member_of_the_pool_id=t.id order by create_date desc limit 0,1) service_date,
       (SELECT create_date FROM member_matter m where m.member_of_the_pool_id=t.id order by create_date desc limit 0,1) create_date,
       (SELECT commit_name FROM member_matter m where m.member_of_the_pool_id=t.id order by create_date desc limit 0,1) commit_name
             FROM member_of_the_pool t
             LEFT JOIN ( SELECT member_of_the_pool_id, count(*) service_count FROM member_matter GROUP BY member_of_the_pool_id ) t1 ON t.id = t1.member_of_the_pool_id
         ) t ${ew.customSqlSegment}
    </select>

其中最重要的是${ew.customSqlSegment},它表示条件构造器,此时返回的就是一个分好页的列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值