Mybatis实现Oracle 分页「建议收藏」

Mybatis实现Oracle 分页「建议收藏」Mybatis+Oracle分页1,使用mybatis的插件PageHelper(1)Mapper.xml<?xmlversion=”1.0″encoding=”UTF-8″?><!DOCTYPEmapperPUBLIC”-//mybatis.org//DTDMapper3.0//EN””http://mybatis.org/dtd/mybati…

大家好,又见面了,我是你们的朋友全栈君。

Mybatis+Oracle 分页

1,使用mybatis的插件PageHelper

(1)Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:填写的是监听的Mapper权限命名的接口 -->
<mapper namespace="cn.ssm.dao.StudentMapper">
	<select id="selectUserinfo"  resultType="cn.ssm.dao.bean.Userinfo">
	    select *  from userinfo
	</select>
</mapper>

(2)分页实现

	  public List<Userinfo> selectUserinfo() {
	 	  PageHelper.startPage(2, 3); //使用分页插件
		  List<Userinfo> userinfos =studentMapper.selectUserinfo();
		  PageInfo<Userinfo> infos=new PageInfo<Userinfo>(userinfos); 
		  List<Userinfo> list = infos.getList(); 
		  return userinfos; 
	  }

2,使用利用 rownum这个字段,oracle 数据库中特有的字段

(1)Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:填写的是监听的Mapper权限命名的接口 -->
<mapper namespace="cn.ssm.dao.StudentMapper">
 <select id="selectUserinfo" parameterType="cn.ssm.dao.bean.Userinfo" resultType="cn.ssm.dao.bean.Userinfo">
      select * from ( select row_.*, rownum rownum_ from ( select * from  userinfo ) row_ 
      where rownum &lt;=  #{pageNum} * #{pageSize} ) where rownum_ &gt;  (#{pageNum} - 1) * #{pageSize}
  </select>
</mapper>

(2)分页实现

public class Userinfo {
	private int id;
	private String name;
	private String password;
	private Integer pageNum;
	private Integer pageSize;
}
	public List<Userinfo> selectUserinfo() {
		Userinfo user=new Userinfo();
				user.setPageNum(2);//设置当前为第2页
				user.setPageSize(3);//设置每页总共3条数据
		List<Userinfo> userinfos = studentMapper.selectUserinfo(user);
		return userinfos;
	}

结果展示:

Mybatis实现Oracle 分页「建议收藏」


例子:select * from (select t.*,rownum r from (select * from A) t where rownum < 10)where r >5
第一层:select * from A:要查询的数据
第二层:select t.*,rownum r from (select * from A) t where rownum < 10:取前 10 行
第三层:select * from (select t.*,rownum r from (select * from A) t where rownum < 10)where r >5:取 5-10 行


说明: select * from ( select row_.*, rownum rownum_ from ( select * from  userinfo ) row_  where rownum <=  #{pageNum} * #{pageSize} )a where rownum_ >  ( #{pageNum}- 1) * #{pageSize}
      
 解析:先查询select * from  userinfo 总条数并起个别名 row_,
        然后查询select row_.*, rownum rownum_ from ( select * from  userinfo ) row_  where rownum <=  #{pageNum} * #{pageSize} ,把所有数据和rownum固定字段列查询并起别名,
        最后从a中查询出想要的数据,主要是使用rownum固定字段列筛选实现分页 where rownum_ >  ( #{pageNum}- 1) * #{pageSize}


小于号:&lt;

大于号:&gt;

 

 

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

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

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


相关推荐

  • 解析MP4文件中的sps和pps[通俗易懂]

    解析MP4文件中的sps和pps[通俗易懂]一、MP4格式基本概念MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二、MP4封装格式核心概念1 MP4封装格式对应标准为ISO/IEC14496-12(信息技术视听对象编码的第12部分:ISO基本媒体文件格式/InformationtechnologyCodingofaudio-visualobjectsPart12

    2022年8月31日
    5
  • Linux中的pycharm配置问题「建议收藏」

    Linux中的pycharm配置问题「建议收藏」1.pycharm的图标问题解决方法:在终端输入以下命令行:sudogedit/usr/share/applications/Pycharm.desktop进入gedit文档界面然后将里面的内容复制成:[DesktopEntry]Type=ApplicationName=PycharmGenericName=Pycharm3Comment=Pycharm3:…

    2022年8月26日
    10
  • PKI体系知识详解[通俗易懂]

    PKI体系知识详解[通俗易懂]PKI体系具体流程图解ppt连接:http://download.csdn.net/source/2390117 

    2022年8月22日
    6
  • 汇编语言—移位指令

    汇编语言—移位指令移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;一、算数移位指令:算数移位指令分为:算数左移SAL(ShiftAlgebraicLeft)和算数右移S

    2022年5月29日
    36
  • 【通信系统仿真设计】基于MATLAB的直接序列扩频通信系统仿真

    【通信系统仿真设计】基于MATLAB的直接序列扩频通信系统仿真直接扩频序列调制是用速率很高的伪噪声码序列与信息码序列模二相加(波形相乘)后得到复合码序列,用复合码序列去控制载波相位,从而获得直接扩频序列信号的。直接扩频通信具有低截获概率、抗干扰能力强以及易于实现码分多址等优点,在抗干扰通信及民用移动通信中都得到了广泛的应用。

    2022年6月3日
    50
  • 第四章《MySQL的数据类型和运算符》

    第四章《MySQL的数据类型和运算符》

    2021年5月28日
    101

发表回复

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

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