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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大疆网上测评题库_大疆笔试题

    大疆网上测评题库_大疆笔试题大疆笔试的体验很好,没有很为难应聘者,还有着自己鲜明的特点,我认为值得一说,特此写笔经记录一下,顺便攒攒RP,第一次笔经就献给大疆啦~笔试网站是大疆自己搭建的(UI设计炒鸡好看!!!),我猜题目也是大疆HR团队自己出的。从这点来看,大疆对人才的把控很严格,必须是自己经手选出来的人。整套笔试题目共有90道题,给了1.5个小时完成,题型包括态度行为题、行业知识题、工作情景题,以及略有升级的行测题。其中…

    2022年6月30日
    524
  • max31865模块RTD测温注意事项

    max31865模块RTD测温注意事项max31865模块RTD测温注意事项注意事项1参考电阻注意事项2接线注意事项3电气连接注意事项4max31865模块重要细节注意事项5SPI时序间隔参考代码注意事项1参考电阻ThePT100versionofthebreakoutuses430ΩThePT1000versionuses4300Ω一般PT100选400欧姆参考电阻,但是板子上给的是4300,也就是430Ω。程序里需要设置参考电阻为430,PT1000选择4300Ω。#defineREF_RES

    2022年6月17日
    35
  • RabbitMQ消息队列常见面试题总结

    RabbitMQ消息队列常见面试题总结

    2021年4月10日
    192
  • 永恒之蓝-MS17010 CVE-2017-0146

    永恒之蓝-MS17010 CVE-2017-0146永恒之蓝(EternalBlue)是由美国国家安全局开发的漏洞利用程序,对应微软漏洞编号ms17-010。该漏洞利用工具由一个名为”影子经济人”(ShadowBrokers)的神秘黑客组织于2017年4月14日公开的利用工具之一,该漏洞利用工具针对TCP445端口(ServerMessageBlock/SMB)的文件分享协议进行攻击,攻击成功后将被用来传播病毒木马。由于利用永恒之蓝漏洞利用工具进行传播病毒木马事件多,影响特大,因此很多时候默认将ms17-010漏洞称为“永恒之蓝”。…

    2022年5月27日
    53
  • 【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

    【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包使用maven构建工具可以将工程打包生成普通的jar包、可运行的jar包,也可以将所有依赖一起打包生成jar;一、普通的jar包普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖;同时还包括pom文件,说明该包的依赖信息;在工程pom文件下这样写,可生成普通的jar包:jar或者,不写,因为packaging默认打包类型为

    2022年5月30日
    37
  • SQL:char、varchar、text和nchar、nvarchar、ntext的区别

    SQL:char、varchar、text和nchar、nvarchar、ntext的区别

    2021年7月27日
    58

发表回复

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

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