IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 多表查询 Mybatis Plus 自定义方法实现分页 -> 正文阅读

[大数据]多表查询 Mybatis Plus 自定义方法实现分页

一般办法

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

 <select id="queryStudentsBySql" parameterType="map" resultMap="studentmapper">        
     select * from student limit #{currIndex} , #{pageSize}     
 </select>
 <select id="queryStudentsCount" resultType="java.lang.Integer" parameterType="java.util.Map">       
    select count(*) from student     
 </select>

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

mybaties-plus分页实现

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

mapper实现

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

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

 * @since 2022-04-25
 */
@Mapper
public interface TodoCustomMapper  {

    /**
     * 查询代办任务列表
     * @param todoTaskQuery
     * @return
     */
    List<TodoVo> selectTodoListByQuery(Page page, TodoQuery todoQuery);
}

xml

 <select id="selectTodoListByQuery" resultType="com.liu.vo.TodoTaskVo">
        SELECT
        a.id,
        a.system_code,
      
        a.user_name,
        a.user_id
       
        FROM
       表名 a
        LEFT JOIN 表名 b on 连接条件
        <where>
           
            <if test="todoTaskQuery.genTimeEq!=null and todoTaskQuery.genTimeEq!=''">
                and 条件
            </if>
          
           
        </where>
        ORDER BY
      xxxx
    </select>

service层

public IPage<TodoVo> selectTodoListByQuery(TodoQuery todoQuery) {

        if (ObjectUtil.isNull(todoQuery)){
            todoQuery = new TodoQuery();
            todoQuery.setLimit(10);
            todoQuery.setPage(1);
        }
        Page<TodoVo> page = new Page<>(todoQuery.getPage(), todoQuery.getLimit());
        List<TodoVo> todoVos = todoCustomMapper.selectTodoListByQuery(page, todoQuery);
        page.setRecords(todoVos);
      
        return page;
    }
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:58:25  更:2022-05-10 12:00:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:54:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码