您的位置:首页 > 数据库

SSH框架之Hibernate的Criteria 查询、本地SQL查询、分页查询

2016-12-29 13:49 507 查看
一、Criteria 查询



二、SQLQuery, 本地SQL查询



三、分页查询

1、代码:

package sram.query;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.ScrollableResults;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;

public class App_page {
public static SessionFactory sf;
static{
sf = new Configuration()
.configure()
.addClass(Dept.class)
.addClass(Employee.class)//测试使用
.buildSessionFactory();
}

//分页查询
//注意: 必须按照所示1、2、3的顺序书写,顺序不能调换
@Test
public void all(){
Session session = sf.openSession();
session.beginTransaction();

Query q = session.createQuery("from Employee");

//1.总记录数
//这种方式也可以session.createQuery("select count(*) from Employee");
//但是hql给我提供了一个更好的方法
ScrollableResults scroll = q.scroll();//得到滚动的结果集
scroll.last();//滚动到最后一行
int totalCount = scroll.getRowNumber()+1;//得到滚动的记录数,即总记录数,但是是从0开始,所以要+1

//2.设置分页参数
q.setFirstResult(0);
q.setMaxResults(2);

//3.查询
System.out.println(q.list());

System.out.println("总记录数:"+totalCount);

session.getTransaction().commit();
session.close();

/*
Criteria查询和sql查询也支持上述的ScrollableResults对象进行分页查询
Criteria criteria = session.createCriteria(Employee.class);
session.createSQLQuery("from t_employee");
*/
}
}


2、运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息