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());
}
}
}