MybatisPlus 多表分页&条件查询

平时开发的时候都是单表使用 MybatisPlus 进行条件查询,这次有个功能需要多表联查,便在开发结束后记录下。

(开发属于内网,无贴图。) Controller 层接收的参数,三个,DTO,page,size。DTO是包含所有条件属性的类。

单表的时候分页条件查询如下步骤:

创建条件
QueryWrapper<T>wrapper = new QueryWrapper<>();
wrapper.eq("列名","参数值");
创建分页
Page<T> page = new Page<>(page, size);
调用,且不用在mapper.xml文件中自定义sql
mapper.selectPage(page, wrapper);

即可。

多表分页条件查询,首先 mapper.xml 里面要手写 sql , 最后的 where 条件不用写,用 ${ew.customSqlSegment} 替代。例如:

select t1.*, t2.*
from t1 inner join t2 
on t1.id = t2.id
${ew.customSqlSegment}

Mapper类接口继承BaseMapper,当前方法传参需要定义成如下所示。

IPage<T> queryTest(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> wrapper);
经验分享 程序员 微信小程序 职场和发展