rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能
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实现分页查询功能相关推荐
- MyBatis中使用流式查询避免数据量过大导致OOM
欢迎关注方志朋的博客,回复"666"获面试宝典 今天mybatis查询数据库中大量的数据,程序抛出: java.lang.OutOfMemoryError: Java heap s ...
- Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)
需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...
- oracle数据库在mybatis中的数值类型(NUMBER型)
oracle数据库的数值类型在mybatis中使用NUMERIC ,而不是NUMBER
- MyBatis中的多条件查询
mybatis的多条件查询是后台开发中常见的一种需求,下面直接展示需要实现的效果图: 如上图,我们需要根据四个条件来查询简历信息,而且需求允许某些条件为空,还有一个就是时间段的查询,如果我们使用的常规 ...
- SpringBoot整合MyBatis并实现简单的查询功能
学了SpringBoot整合MyBatis才知道什么叫做省事,想当初用SSM的时候,那配置是真的多,SpringBoot真的是太友好了,到底有多好,接下来演示一个对数据库的查询功能,然初学者的我们大开 ...
- MyBatis中三种分页查询方式
文章目录 通过limit分页查询 通过Rowbounds 通过分页插件pagehelper 通过limit分页查询 mapper接口 List<User> getUserByLimit(M ...
- Mybatis中sql拼接in查询
MyBatis数据库sql语句中in一个动态数组 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection ...
- mybatis中的多表查询
首先我们先创建两个表和pojo用来演示多表查询,如下: 用户表:t_emp表,其中emp_id为自增主键. t_emp对应的pojo:Employee public class Employee {p ...
- Mybatis中的Criteria条件查询
Criterion Criterion是最基本,最底层的Where条件,用于字段级的筛选. Criteria Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cret ...
最新文章
- 根据字段的不同内容分类汇总 - 球队的胜负次数统计
- CVPR!你凭什么收录我3篇论文!?
- web基础html元素制作web
- Kickstart 多系统安装配置
- 这样理解PWM,想不懂都难!
- html5波浪线条,HTML5 svg炫酷波浪线条动画插件
- @Autowired注入为null的几种情况
- mysql1关闭_(2.1)学习笔记之mysql基本操作(启动与关闭)
- 穿越火线好友服务器不稳定,穿越火线合区后新危机,玩家:卡顿掉帧没法玩
- 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
- 第四届中国云计算大会——123
- 数字图像处理复习记录(二)邻接、连通和形态学处理
- 解决:Word仿宋字体显示不正确,仿宋GB2312的问题
- matlab读取sgy格式文件的m文件,matlab读取segy格式的文件
- 视频教程-SpringBoot核心技术-Java
- html 鼠标单击显示div,3.1.2 利用鼠标单击实现DIV的选取
- Tcl/Tk入门(上)
- 给每个物品一张“身份证”
- attention机制、self-attention、channel attention、spatial attention、multi-head attention、transformer
- 【游戏程序设计】三维游戏示例-战术竞技游戏Demo(二)
热门文章
- 怎么通过ip连接oracle,Oracle 无法通过IP连接问题
- 霹雳小组4显示不了服务器,霹雳小组4-指令码
- 为什么输出流会有一个flsh_交流会| “流量”还是“留量”,如何成为电商风口上的赢家?...
- 家长学校.net keti.html,家长学校教科研的工作制度
- controller是什么意思_光谈理论有什么意思,附源码带大家实操SpringBoot
- python打开文件夹对话框_文件对话框打开文件夹中的文件(tkinter)
- python把文字矢量化_这个python函数可以被矢量化吗?
- 【c语言】蓝桥杯算法提高 输出三个整数的最大数
- windows c 操作mysql_windows下c/C++操作Mysql的一些总结(绝对精华,不要错过)
- kubeadm安装高可用kubernetes v1.14.1