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

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值