利用Hibernate 使用QUC分頁
其簡單得功能爲:
1.通過輸入第一條數據的位置和每頁現實的數據來確定數據
2.並可以通過輸入頁數來顯示各個頁數的數據
程序主要代碼:
public void testPageQuery(){
SessionFactory sf = null;
Session session0 = null;
Transaction tx = null;
try {
while(true){
sf = HibernateUtil.getSessionFactory();
session0 = sf.getCurrentSession();
tx = session0.beginTransaction();
Criteria criteria = session0.createCriteria(User.class);
System.out.println("請分別輸入第一條數據的位置和一頁顯示的數據個數:");
Scanner sc = new Scanner(System.in);
Scanner sc1 = new Scanner(System.in);
int firstD = sc.nextInt();
int maxR = sc1.nextInt();
criteria.setFirstResult(firstD);
criteria.setMaxResults(maxR);
List<?> users = criteria.list();
for(int i =0;i<users.size();i++){
User u = (User)users.get(i);
System.out.println("姓名: " + u.getName() + "性別: "
+ u.getGender() + "年齡" + u.getAge());
}
System.out.println("請輸入你要跳轉的頁面:");
Scanner sc2 = new Scanner(System.in);
int pageNum = sc2.nextInt();
int firstData = firstD + pageNum * maxR;
criteria.setFirstResult(firstData);
criteria.setMaxResults(maxR);
List<?> users1 = criteria.list();
for(int i =0;i<users1.size();i++){
User u = (User)users1.get(i);
System.out.println("姓名: " + u.getName() + "性別: "
+ u.getGender() + "年齡" + u.getAge());
}
tx.commit();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
tx.rollback();
}finally{
session0.close();
sf.close();
}
}