1. 程式人生 > >dljd_048_hibernate_單表查詢_mysql分頁查詢

dljd_048_hibernate_單表查詢_mysql分頁查詢

一、hibernate中實現mysql分頁查詢示例

  

package edu.aeon.hibernate.test;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import edu.aeon.aeonutils.hibernate.getsessionutil.GetSessionUtil;
import edu.aeon.beans.Student;
/**    
 * [說明]:分頁查詢
 * 
@author aeon * */ public class TestQueryByPage { @Test public void testHqlQueryByPage() { Transaction transaction=null; Session session=null; try { session = GetSessionUtil.getSession(); transaction=session.getTransaction(); transaction.begin();
// 第一種動態引數賦值[start] String hql="from Student"; int pageNo=1;//第一頁 int pageSize=2;//每頁顯示兩條 int pageIndex=(pageNo-1)*pageSize; //根據傳進來的頁數和每頁顯示的記錄數計算出該頁的其實記錄 List<Student> stuList= session.createQuery(hql) .setFirstResult(pageIndex) .setMaxResults(pageSize) .list();
//[/end] for (Student stu : stuList) { System.out.println(stu); } System.out.println("hql查詢!"); transaction.commit(); } catch (Exception e) { e.printStackTrace(); //事物的回滾操作 transaction.rollback(); }finally{ /* * 其實這種getCurrentSession獲取到的session我們無需手動關閉 * 因為當事務提交或者回滾的時候已經做了關閉session操作 * 而用openSession獲取到的session我們一定要用手動去關閉 * */ if(null!=session){ session.close(); } } } }

資料庫資料資訊截圖:

  

測試結果截圖(第一頁):

  

測試結果截圖(第二頁):

  

測試結果截圖(第三頁):

  

測試結果截圖(第四頁):

  

 

測試結果截圖(第五頁):

  

測試每頁顯示三條記錄的第四頁截圖如下: