Hibernate学习笔记:用Query作分页
来源:互联网 发布:深圳网络出租屋转让 编辑:程序博客网 时间:2024/06/06 08:44
Query提供了两个方法以实现分页:
query.setFirstResult(int) 设置第一条记录开始的位置
query.setMaxResults(int) 设置返回的纪录总条数
在前面的BookDao的接口和实现类中添加一个方法:
这样看起来很简单, 我比较感兴趣的是Hibernate内部是怎么实现了。我手头有sybase, sqlserver2005, oracle8.1, 我分别作了实验看怎么写出一个可分页的sql.下面我就以从第11条记录开始取5条记录 来做例子。
oracle因为 返回的记录集里面默认有一个rownum行号,可以利用这个来分页:为什么要有子查询和给rownum 取别名,要仔细想一想:
select * from (select rownum as myid, book.* from book) where myid> 10 and myid<= 15
sqlserver因为可以select top 所以可以这么做:
select top 5 * from etl.letter where id not in (
select top 10 id from etl.letter
)
但是这句话在同样支持select top的Sybase中不work,似乎子查询中不能用select top.但是这并不是问题,可以select前15条记录,然后在jdbc中忽略前10条, 这样也可以达到效果.
如果是MySql,可以有: SELECT * FROM my_table LIMIT 10, 5, 但是我手头没有这样的数据库.所以没有测试.
jdk 1.5中的Statement可以设置maxRows, statement.setMaxRows(int),这种方式很好与数据库无关.
- Hibernate学习笔记:用Query作分页
- Hibernate query 学习笔记
- Hibernate学习笔记--Criteria Query
- hibernate query分页封装
- hibernate学习笔记:hibernte分页
- Hibernate的query.setFirstResult(),query.setMaxResults()分页
- Hibernate学习笔记-HQL(Hibernate Query Language)
- Hibernate学习笔记-HQL(Hibernate Query Language)
- org.hibernate.Query笔记
- Query接口学习笔记
- Hibernate实现分页 笔记
- Hibernate分页查询和批量更新(学习笔记)
- Hibernate学习笔记(3):session的get、load、delete方法和Query的简单使用
- hibernate HQL ——Query 笔记
- Hibernate执行分页查询时报can not execute query
- Hibernate命名参数和Query的分页查询
- Hibernate的学习总结(Query对象)
- hibernate入门(二)Query初步学习
- C++ 链表
- easymock学习
- 实现的无缝循环
- LibSVM学习(四)——逐步深入LibSVM
- 泛型声明
- Hibernate学习笔记:用Query作分页
- struts2和extremecomponents中文乱码解决方案
- wsdl2java使用 2
- VC 纯资源DLL制作及调用
- 泛型算法系列34:mismatch()
- pku 1265 Area(pick公式)
- JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecute
- singleton 两种实现
- HMM学习最佳范例五:前向算法3