多表查询 Mybatis Plus 自定义方法实现分页

一般办法

一般物理分页,即通过sql语句分页,都是在sql语句后面添加limit分页语句,在xml文件里传入分页的参数,再多配置一条sql,用于查询总数:

 
 

再新建一个page对象,把需要的结果数据设值进去

mybaties-plus分页实现

分页有一个拦截器的分页插件,利用这个分页插件,不需要自己写拦截器就可以轻松实现分页查询:
分页插件配置

mapper实现

todoQuery封装的查询条件
TodoVo 封装的返回的页面要展示的字段项

  • 一定要传递page参数,否则不能实现分页,查询sql 可以是多表联合查询的复杂语句。
/**
 * 

* 任务表 Mapper 接口 *

* * @since 2022-04-25 */ @Mapper public interface TodoCustomMapper { /** * 查询代办任务列表 * @param todoTaskQuery * @return */ List selectTodoListByQuery(Page page, TodoQuery todoQuery); }

xml

 

service层

public IPage selectTodoListByQuery(TodoQuery todoQuery) {

        if (ObjectUtil.isNull(todoQuery)){
            todoQuery = new TodoQuery();
            todoQuery.setLimit(10);
            todoQuery.setPage(1);
        }
        Page page = new Page<>(todoQuery.getPage(), todoQuery.getLimit());
        List todoVos = todoCustomMapper.selectTodoListByQuery(page, todoQuery);
        page.setRecords(todoVos);
      
        return page;
    }

你可能感兴趣的:(项目实战,sql,数据库,database)