hibernate 分页自己小结了哈

package demo.chap5;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.hourse.dao.BuildSessionFactory;
import org.hourse.entity.Type;

import sun.text.normalizer.IntTrie;
@SuppressWarnings("unchecked")
public class Demo2 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  Session session=BuildSessionFactory.getSession();
  session.beginTransaction();
  Criteria criteria=session.createCriteria(Type.class);
  
  criteria.setProjection(Projections.rowCount());
  //这里是设置带条件的分页,如果不要就是查找全部
  criteria.add(Restrictions.like("name", "四", MatchMode.ANYWHERE));
  //获得总条数
  int recordCount=(Integer)criteria.uniqueResult();
  System.out.println("总条数:"+recordCount);
  int pageSize=2;//设置页大小
  int pageIndex=2;//页号
  
  //计算总页数:总页数=总条数/页大小
  int pageCount=recordCount%pageSize==0?
      recordCount/pageSize:
       recordCount/pageSize+1;
  System.out.println("总页数:"+pageCount);
 
  //经验所得,在进行分页前,的清除Projections
  criteria.setProjection(null);
  //分页
  List<Type> typeList=criteria.setFirstResult((pageIndex-1)*pageSize)
       .setMaxResults(pageSize).list();
  
  for (Type t : typeList) {
   System.out.println(t.getId()+"\t"+t.getName());
  }
 }

}


版权声明:本文为mexican_jacky原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。