首页 > 编程语言 >Java实现分页的方式有哪些?

Java实现分页的方式有哪些?

时间:2023-10-30 09:33:52浏览次数:57  
标签:MybatisPlus 分页 哪些 list pagehelper new Mybatis Java

1、手动分页

不使用任何框架,用limt分页

select xx from tab_a  limt  #{pageNo},#{pageSize}

2、RowBounds分页(不推荐)

这个是内存分页,它的原理是一次性查出所有数据,然后在内存里进行分页,占内存。

3、PageHelper分页(推荐)

Mybatis分页插件
pom依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.1</version>
</dependency>

application.yml

# pageHelper分页配置
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true

使用:

// 第一步 开启分页,记住,这行的下面紧跟着查询语句
PageHelper.startPage(pageNum, pageSize);
 // 第二步 根据实际业务sql语句查询
List<xxx> list = xx.selectxx(xx);
// 第三步 通过PageInfo对象可以获取分页后的信息 常用的如下:
PageInfo<xx> pageInfo = new PageInfo<>(tbCpsGoodList);
List<xxx> listResults = pageInfo.getResult(); // 分页得到的list
long total = pageInfo.getTotal(); // 总数

4、MybatisPlus自带分页(推荐)

MybatisPlus是Mybatis的增加版,只对Mybatis做增强,不影响原来功能的使用。它还贴心的自带了分页功能。无需额外引入依赖。

使用:

LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
Page<User> page = new Page<>(1, 2);
IPage<User> pageResult  = userMapper.selectPage(page,lambdaQueryWrapper);
result.put("total", pageResult.getTotal());
result.put("list", pageResult.getRecords());

总结

1、分页只是个小功能,别再纠结了,也别研究了,其实分页插件的原理,也就是帮你做了limit 1,2这些破事。

2、能用MybatisPlus尽量用,它解决了版本不匹配的问题,Mybatis的pageHelper还有版本问题,高版本的springboot未必支持低版本的pageHelper依赖。

标签:MybatisPlus,分页,哪些,list,pagehelper,new,Mybatis,Java
From: https://www.cnblogs.com/zhaojinhui/p/17797067.html

相关文章

  • Java基础 反射
     反射允许对封装类的字段(成员变量)、方法(成员方法)和构造函数(构造方法)的信息进行编程访问  获取字段(成员变量)、成员方法和构造方法的时候,我们不是从Java文件中获取的,而是从class字节码文件当中获取的所以我们首先要先学习如何获取class字节码文件的对象 ......
  • 创建CI/CD流水线中的IaC前,需要考虑哪些事项?
    许多软件工程团队通常会遵循相似的方法来交付基础设施以支持软件开发生命周期。为了缩小基础设施配置方式与应用程序环境部署方式之间的差距,许多DevOps团队将其基础设施即代码(IaC)模块直接连接到其CI/CD平台。其目的是创建一个直接融入软件开发和交付流程的连续基础设施流水线,......
  • Java项目报错java.lang.UnsupportedOperationException: null 处理
    编写好业务代码后运行项目时报错: 人都麻了!查看控制台信息sql语句,发现原本输出6条结果的,却只查出一条就报错了。查了一下关于:2023-10-29T23:08:23.431+08:00ERROR29156---[nio-8099-exec-1]o.a.c.c.C.[.[.[/].[dispatcherServlet]  :Servlet.service()forservlet......
  • java中方法内的局部变量是在什么时候被创建的
    2023.10.291.不是局部变量在该方法被执行/调用时创建,而是应该为在该变量被声明并赋值时创建,可以理解为“当代码执行到该变量被赋值的代码时才被创建”。栈会为每个方法在运行的时候分配一块独立的栈帧内存区域,栈帧又包含“局部变量表”、“操作数栈”、“动态链接”以及“方法出......
  • javascript的一些API接口的使用
    1.blobhttpURL在编辑器中,有的情况下插入图片,会讲图片转成blob:http://localhost/***的这种形式。这种形式的URL实际数据是存放在浏览器的内存中。这种情况下如何读取这个URL的具体内容呢点击查看代码asyncreadStreamAndEncodeBase64(url){//发送请求并......
  • java 内存分配
    ......
  • java基础漏洞学习----SSTI漏洞
    java基础漏洞学习----SSTI漏洞Velocity模板注入Java中有以下这些常见的模板引擎:XMLTemplate,Velocity,CommonTemplate,FreeMarker,Smarty4j,TemplateEngine其中Velocity在Java中使用较多把以下内容用burpsuite的url编码#set($e="e");$e.getClass().forName("java.lang.Runti......
  • JAVA-10.30
    public/private#关键字public被称之为访问修饰符。public定义的方法表示任何类的任何方法都可以调用,public定义的字段语序程序中任何方法对其进行修改和读取。但是使用public字段会破坏封装,我们会经常需要让类的属性只能被所在的类自身来调用(比如学生类的个人信息,一般只......
  • Java基础 InetAddress
    publicstaticvoidmain(String[]args)throwsException{//address是IP的对象,也是一台电脑的对象InetAddressaddress=InetAddress.getByName("172.18.153.251");System.out.println(address.getHostName());System.out.println(address.getHostAddress()......
  • Windows 10中,可以使用以下PowerShell脚本来禁用Internet Explorer的Javascript错误提
    Windows10中,可以使用以下PowerShell脚本来禁用InternetExplorer的Javascript错误提示禁用脚本调试器Set-ItemProperty-Path"HKCU:\Software\Microsoft\InternetExplorer\Main"-Name"DisableScriptDebugger"-Value"yes"禁用每个脚本错误的通知Set-ItemProperty......