关于mybatis-plus:Mybatisplus-分页插件多条件查询

mybatis-plus官网提供了分页插件,(spring-boot)应用办法如下:

//Spring boot形式
@Configuration
@MapperScan("com.test.*.mapper*")
public class MybatisPlusConfig {

    // 旧版
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置申请的页面大于最大页后操作, true调回到首页,false 持续申请  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限度数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对局部 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }

    // 最新版
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }

}

如何辨别新旧版呢?其实你把这两种代码都复制到你的我的项目里,哪个类存在就用哪个办法。

注入分页插件后,如何应用呢?

mapper写法:

// 这是mapper本人提供的办法,参数是wrapper 实用于单表查
 <P extends IPage<T>> P selectPage(P page, @Param("ew") Wrapper<T> queryWrapper);

// 自定义sql,实用于多表联查
IPage<UserVO> queryUserList(Page<UserVO> page,  @Param("dto") ConditionDTO conditionDTO);

必须要次要的点:
1.Page为IPage的实现类,分页返回和传入Page是同一个对象
2.Page类必须放在第一位
3.第二个参数和后续参数必须加@Param,(根本类型和实体类型都须要加),否则会报找不到属性谬误。

mapper.xml:

<select id="queryUserList" resultType="com.test.vo.UserVO">
    select *
    from auth_user
    where sex = #{dto.sex}
    and cancat_ws(':',name,phone) like concat('%',#{dto.searchKey,'%'})
</select>

service调用mapper

public PageDataVO<UserVO> getUserList( ConditionDTO conditionDTO) {
        // 分页查问
        Page<UserVO> page  = new Page<>(conditionDTO.getPageNum(), conditionDTO.getPageSize());
        IPage<UserVO> result =  userMapper.queryUserList(page, conditionDTO);
        //构建本人的分页实体类
        return new PageDataVO<WorkReviewVO>().build(result);
    }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理