hibernate的分頁查詢


setFirstResult(int firstResult) 設置返回結果從第幾條開始 ---- 索引從0開始

setMaxResults(int maxResults) 設置本次返回結果記錄條數

hibernateHql.cfg.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 指定數據庫所用到的驅動 -->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- 指定數據庫鏈接的url,hibernate鏈接的數據庫名 -->
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<!-- 指定連接數據庫的用戶名 -->
<property name="connection.username">scott</property>
<!-- 指定連接數據庫的用戶口令 -->
<property name="connection.password">123156</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

<!--格式化sql -->
<property name="format_sql ">true</property>
<!-- 打印sql 控制台-->
<property name="show_sql">true</property>
<!-- 指定數據庫方言 -->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- 根據需要自動創建數據庫表 -->
<property name="hbm2ddl.auto">update</property>
<!--關聯小配置文件-->
<mapping resource="cn/day03hql/dynamic/entity/Emp.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>


實體類
public class Emp {
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private Date hiredate;
private Integer sal;
private Integer comm;
private Integer deptno;

public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}

public String getEname() {return ename;}
public void setEname(String ename) {
this.ename = ename;
}

public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}

public Integer getMgr() {
return mgr;
}
public void setMgr(Integer mgr) {
this.mgr = mgr;
}

public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}

public Integer getSal() {
return sal;
}
public void setSal(Integer sal) {
this.sal = sal;
}

public Integer getComm() {
return comm;
}
public void setComm(Integer comm) {
this.comm = comm;
}

public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
}

小配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 映射文件開始 -->
<hibernate-mapping package="cn.day03hql.dynamic.entity">
<!--表名稱-->
<class name="Emp" table="EMP" schema="scott">
<!--列名-->
<id name="empno" column="EMPNO">
<!--主鍵生成的策略 native:自動生成主鍵字段-->
<generator class="native"></generator>
</id>
<property name="ename" column="ENAME"></property>
<property name="job" column="JOB"></property>
<property name="mgr" column="MGR"></property>
<property name="hiredate" column="HIREDATE"></property>
<property name="sal" column="SAL"></property>
<property name="comm" column="COMM"></property>
<property name="deptno" column="DEPTNO"></property>
</class>
</hibernate-mapping>

測試類
//分頁查詢
@Test
public void test02(){
//讀取大配置文件
Configuration cfg=new Configuration().configure("hibernateHql.cfg.xml");
//session工廠
SessionFactory factory=cfg.buildSessionFactory();
//session對象
Session session = factory.openSession();
String hql="from Emp order by empno";
Query query = session.createQuery(hql);
int pageIndex=2;
int pageSize=3;
query.setFirstResult((pageIndex-1)*pageSize);
query.setMaxResults(pageSize);
/* query.setFirstResult(0);
query.setMaxResults(5);*/
List<Emp> list = query.list();
for (Emp item:list){
System.out.println(item.getEname());
}
}





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM