首页 > 编程语言 >JAVA实现多数据源分页

JAVA实现多数据源分页

时间:2023-07-17 14:11:06浏览次数:63  
标签:Count JAVA 分页 数据源 PageUtil 条数 beginNum

简述下思路:

举例:有A,B两个数据源的数据需要查询展示,优先展示A数据源数据,我使用的数据源是 clickhouse+mysql

1,因为需要优先展示A数据源嘛,那就直接通过条件优先查询A数据源数据

2,然后根据分页情况,判断A数据源数据量是否满足当前分页所需数据量。

     有以下三种情况:先获取当前页的起始条数(我用到的是hutool的工具类PageUtil)

 int beginNum= PageUtil.getStart(currPage, page.getPageSize()) -1;

 int endNum= PageUtil.getEnd(currPage, page.getPageSize()) -1;
if(beginNum > A.Count){
  //直接查询B数据源数据
}else if(endNum < A.Count){
  //获取A数据源数据
}else if(beginNum <=A.Count &&  endNum >= A.Count){
  //部分A 部分B
  //计算偏移量
  Integer offSet = a.Count % PageSize;
  //设置B的查询条数
  b.setPageSize(PageSize - offset);
}

3,最后在返回Controller层时,将A,B数据源的条数加总,求的总页数,一起返回即可

标签:Count,JAVA,分页,数据源,PageUtil,条数,beginNum
From: https://www.cnblogs.com/sqh521/p/17559939.html

相关文章

  • java中base类是什么
    Java中的Base类是什么在Java编程语言中,Base类是指一个类层次结构中最顶层的类。所有其他类都是直接或间接地继承自Base类。Base类是Java语言提供的一种基础结构,它为其他类提供了一组共享的属性和方法。本文将介绍Base类的概念、作用以及如何使用。Base类的作用Base类的主要作用......
  • java中[C是什么类型
    Java中[C是什么类型在Java中,[C是一个特殊的数据类型,用于表示字符数组。在这篇文章中,我们将探讨[C类型的特性以及如何使用它。char和字符数组在开始讨论[C类型之前,我们先来复习一下Java中的字符类型char。char是一个16位无符号整数,用于表示Unicode字符。每个char变量可以存储一个......
  • java指令重排
    Java指令重排指令重排是指编译器或处理器在不改变程序语义的情况下,通过重新排序指令的执行顺序,以优化程序性能的一种技术。在Java中,指令重排是为了充分利用现代处理器的特性,如多级缓存和流水线执行。本文将介绍Java中的指令重排原理和示例代码。指令重排原理Java编译器和处理器......
  • java执行jar文件
    如何在Java中执行JAR文件作为一名经验丰富的开发者,我很乐意教你如何在Java中执行JAR文件。执行JAR文件是一种常见的操作,它允许你在Java虚拟机(JVM)上运行打包好的Java应用程序。下面是整个过程的步骤概述:步骤描述1定位并获取JAR文件2创建一个执行JAR文件的运行配置......
  • java正则生成
    Java正则表达式生成教程目录引言流程概述步骤详解总结1.引言正则表达式是一种强大的字符串匹配工具,在Java开发中经常会用到。本文将教会刚入行的开发者如何实现"Java正则生成"。2.流程概述下面是整个流程的概述,我们将在接下来的步骤中逐一展开讲解。步骤描述......
  • java正则匹配字符串
    Java正则匹配字符串正则表达式是一种强大的工具,用于在字符串中查找、替换和匹配模式。在Java中,可以使用正则表达式来实现对字符串的匹配。本文将向刚入行的小白开发者介绍如何在Java中使用正则表达式进行字符串匹配。步骤概览下面是实现Java正则匹配字符串的步骤概览:步骤描......
  • java正则截取select 和 from之间的字符串
    截取SELECT和FROM之间的字符串的方法作为一名经验丰富的开发者,我很乐意教会你如何使用Java正则表达式来截取SELECT和FROM之间的字符串。下面是整个过程的流程图:步骤描述步骤1定义一个用于存储SQL语句的字符串步骤2使用正则表达式匹配SELECT和FROM之间的内容步骤......
  • java真实业务场景面试题
    Java真实业务场景面试题Java是一种广泛使用的面向对象编程语言,在各个行业中都有广泛的应用。因此,在Java开发人员的面试中,经常会涉及到一些与真实业务场景相关的问题。本文将为您介绍一些常见的Java真实业务场景面试题,并提供相应的代码示例。1.数据库连接池数据库连接池是Java中......
  • java展示指定路径文件
    Java展示指定路径文件作为一名经验丰富的开发者,我将教会你如何使用Java展示指定路径下的文件。首先,我将向你展示整个流程,并提供每个步骤所需的代码以及这些代码的注释。流程下面是展示指定路径文件的流程:步骤描述步骤1获取指定路径步骤2遍历指定路径下的文件......
  • java怎么一键替换
    标题:Java一键替换操作详解1.问题概述在Java编程中,有时我们需要对字符串中的某些特定内容进行替换,例如将一个字符串中的所有"a"替换为"b"。本文将详细介绍如何使用Java实现一键替换功能。2.方法一:使用String类的replace方法Java中的String类提供了replace方法用于替换字符串中......