Page、QueryWrapper自定义查询条件实现连表分页查询(一)

1、mapper中重写Page

 Page getPageList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
//QueryWrapper中使用自定义uservo类,不能使用LambdaQueryWrapper

2、xml中sql语句加自动填充查询条件

 /**
     * 获取自定义SQL 简化自定义XML复杂情况
     * 

使用方法

*

`自定义sql` + ${ew.customSqlSegment}

*

1.逻辑删除需要自己拼接条件 (之前自定义也同样)

* 即需加是否删除的判断条件 *

2.不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦)

*

3.用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!)

*

4.ew是wrapper定义别名,可自行替换

*/
    

3、Page、QueryWrapper实现查询分页

     Page resultPage = new Page<>(query.getPageNo(), query.getPageSize());

     QueryWrapper queryWrapper = new QueryWrapper<>();
     queryWrapper.like(StringUtils.isNoneBlank(query.getCname()), "cname", query.getCname());
           
      reportManagementMapper.getPageList(resultPage, queryWrapper);

注意:

mapper方法里的@Param(Constants.WRAPPER) Wrapper query对象,Constants.WRAPPER的值就是ew。
首先判断ew.emptyOfWhere是否存在where条件,有的话再拼接上去,ew.customSqlSegment该值是WHERE + sql语句,还有个ew.sqlSegment是不包括WHERE字符串

你可能感兴趣的:(sql,java,mysql)