Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便。

使用MyBatis中的RowBounds进行分页查询时,不需要在 sql 语句中写 offset,limit,mybatis 会自动拼接 分页sql ,添加 offset,limit,实现自动分页。

需要前台传递参数currentPage和pageSize两个参数,分别是当前页和每页数量,controller层把参数传递给service层即可,下面是service实现的代码:

package com.xyfer.service.impl;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.ibatis.session.RowBounds;

import com.xyfer.dao.UserDao;

import com.xyfer.service.UserService;

public class UserServiceImpl implements UserService {

private UserDao userDao;

@Override

public Map queryUserList(String currentPage, String pageSize) {

//查询数据总条数

int total = userDao.queryCountUser();

//返回结果集

Map resultMap = new HashMap();

resultMap.put("total", total);

//总页数

int totalpage = (total + Integer.parseInt(pageSize) - 1) / Integer.parseInt(pageSize);

resultMap.put("totalpage", totalpage);

//数据的起始行

int offset = (Integer.parseInt(currentPage)-1)*Integer.parseInt(pageSize);

RowBounds rowbounds = new RowBounds(offset, Integer.parseInt(pageSize));

//用户数据集合

List> userList = userDao.queryUserList(rowbounds);

resultMap.put("userList", userList);

return resultMap;

}

}

dao层接口:

package com.xyfer.dao;

import java.util.List;

import java.util.Map;

import org.apache.ibatis.session.RowBounds;

public interface UserDao {

public int queryCountUser(); //查询用户总数

public List> queryUserList(RowBounds rowbounds); //查询用户列表

}

对应的mapper.xml文件:

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select count(1) from user

select * from user

通过postman调用接口,传入对应的参数,即可实现分页查询数据。

总结

以上所述是小编给大家介绍的Oracle使用MyBatis中RowBounds实现分页查询功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能相关推荐

  1. MyBatis中使用流式查询避免数据量过大导致OOM

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天mybatis查询数据库中大量的数据,程序抛出: java.lang.OutOfMemoryError: Java heap s ...

  2. Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

    需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...

  3. oracle数据库在mybatis中的数值类型(NUMBER型)

    oracle数据库的数值类型在mybatis中使用NUMERIC ,而不是NUMBER

  4. MyBatis中的多条件查询

    mybatis的多条件查询是后台开发中常见的一种需求,下面直接展示需要实现的效果图: 如上图,我们需要根据四个条件来查询简历信息,而且需求允许某些条件为空,还有一个就是时间段的查询,如果我们使用的常规 ...

  5. SpringBoot整合MyBatis并实现简单的查询功能

    学了SpringBoot整合MyBatis才知道什么叫做省事,想当初用SSM的时候,那配置是真的多,SpringBoot真的是太友好了,到底有多好,接下来演示一个对数据库的查询功能,然初学者的我们大开 ...

  6. MyBatis中三种分页查询方式

    文章目录 通过limit分页查询 通过Rowbounds 通过分页插件pagehelper 通过limit分页查询 mapper接口 List<User> getUserByLimit(M ...

  7. Mybatis中sql拼接in查询

    MyBatis数据库sql语句中in一个动态数组 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection ...

  8. mybatis中的多表查询

    首先我们先创建两个表和pojo用来演示多表查询,如下: 用户表:t_emp表,其中emp_id为自增主键. t_emp对应的pojo:Employee public class Employee {p ...

  9. Mybatis中的Criteria条件查询

    Criterion Criterion是最基本,最底层的Where条件,用于字段级的筛选. Criteria Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cret ...

最新文章

  1. 根据字段的不同内容分类汇总 - 球队的胜负次数统计
  2. CVPR!你凭什么收录我3篇论文!?
  3. web基础html元素制作web
  4. Kickstart 多系统安装配置
  5. 这样理解PWM,想不懂都难!
  6. html5波浪线条,HTML5 svg炫酷波浪线条动画插件
  7. @Autowired注入为null的几种情况
  8. mysql1关闭_(2.1)学习笔记之mysql基本操作(启动与关闭)
  9. 穿越火线好友服务器不稳定,穿越火线合区后新危机,玩家:卡顿掉帧没法玩
  10. 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
  11. 第四届中国云计算大会——123
  12. 数字图像处理复习记录(二)邻接、连通和形态学处理
  13. 解决:Word仿宋字体显示不正确,仿宋GB2312的问题
  14. matlab读取sgy格式文件的m文件,matlab读取segy格式的文件
  15. 视频教程-SpringBoot核心技术-Java
  16. html 鼠标单击显示div,3.1.2 利用鼠标单击实现DIV的选取
  17. Tcl/Tk入门(上)
  18. 给每个物品一张“身份证”
  19. attention机制、self-attention、channel attention、spatial attention、multi-head attention、transformer
  20. 【游戏程序设计】三维游戏示例-战术竞技游戏Demo(二)

热门文章

  1. 怎么通过ip连接oracle,Oracle 无法通过IP连接问题
  2. 霹雳小组4显示不了服务器,霹雳小组4-指令码
  3. 为什么输出流会有一个flsh_交流会| “流量”还是“留量”,如何成为电商风口上的赢家?...
  4. 家长学校.net keti.html,家长学校教科研的工作制度
  5. controller是什么意思_光谈理论有什么意思,附源码带大家实操SpringBoot
  6. python打开文件夹对话框_文件对话框打开文件夹中的文件(tkinter)
  7. python把文字矢量化_这个python函数可以被矢量化吗?
  8. 【c语言】蓝桥杯算法提高 输出三个整数的最大数
  9. windows c 操作mysql_windows下c/C++操作Mysql的一些总结(绝对精华,不要错过)
  10. kubeadm安装高可用kubernetes v1.14.1