mybatis oracle 分页查询_oracle分页查询出现重复的问题

mybatis oracle 分页查询_oracle分页查询出现重复的问题Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便。使用MyBatis中的RowBounds进行分页查询时,不需要在sql语句中写offset,limit,mybatis会自动拼接分页sql,添加offset,limit,实现自动分页。需要前台传递参数currentPage和page…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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实现分页查询功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

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

时间: 2019-07-17

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190756.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • smartsvn 用法

    smartsvn 用法都说SMARTSVN是最全的Mac上的SVN客户端工具,分Pro版和基础版,基础版跟Versions差不多,这里找了Pro版下载并激活成功教程:mac版本smartSVN客户端下载:http://www.s

    2022年8月1日
    30
  • 白话零拷贝「建议收藏」

    白话零拷贝「建议收藏」sendfile()这个系统调用是在两个文件描述符之间直接传递数据(这个操作是完全在内核态进行),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,称之为零拷贝,操作效率很高—————————下面我们一步一步来了解什么是零拷贝———————–我们知道I/O操作分为缓存I/O和直接I/O缓存I/O缓存I/O,即标准I/O…

    2022年9月15日
    0
  • laravel判断上传文件是否有效

    laravel判断上传文件是否有效

    2021年10月10日
    41
  • 2021sublime激活码【2021最新】

    (2021sublime激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9071407CR5-eyJsaWNlbnNlSWQiOi…

    2022年3月22日
    48
  • 如何用vscode进行前端开发 知乎_vscode单步调试

    如何用vscode进行前端开发 知乎_vscode单步调试如何用VsCode进行Debug本文以Mac系统,C++程序为例,进行Debug操作安装插件不同的语言需要安装的debug插件不一样,如下Debug页面VsCode的Debug页面如下配置Debug环境点击左侧的Debug图标,默认情况下,展示的是配置提示点击图中的【运行和调试】,选择【GDB/LLDB】环境,之后在下拉列表选择【默认配置】,系统自动创建launch.json文件,用于记录debug的配置信息,其中最主要的是配置调试的程序,program字段,选择要debug运行的

    2022年10月15日
    0
  • AsyncHandler

    AsyncHandler

    2022年1月10日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号