Hibernate之criteria查询方式

匿名 (未验证) 提交于 2019-12-03 00:22:01

hql面向对象的查询方式。Criteria 可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode( 联合查询抓取的模式 ) ,设置排序方式,Criteria 还可以设置 FlushModel (冲刷 Session 的方式)和 LockMode接下来用一个测试来感受一下。

package cn.liangce.criteria; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Projection; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.junit.Test; import cn.liangce.domain.Customer; import cn.liangce.utils.HibernateUtils; //测试Criteria查询 public class Demo { 	@Test 	//基本查询 	public void fun1(){ 		//1.获得session 		Session session=HibernateUtils.openSession(); 		//2.控制事务 		Transaction ts = session.beginTransaction(); 		//3.执行操作 		//查询所有Customer对象,创建查询对象 		Criteria criteria = session.createCriteria(Customer.class); 		List list = criteria.list();//List结果集 		System.out.println(list); //		Object uniqueResult = criteria.uniqueResult();独一无二的结果集 		//4.提交事务,关闭资源 		ts.commit(); 		session.close(); 	} 	@Test 	//条件查询 		//HQL语句中,不可能出现任何数据库相关的信息的 		// > 				gt 		// >=				ge 		// <				lt 		// <=				le 		// ==				eq 		// !=				ne 		// in				in 		// between and		between 		// like 			like 		// is not null 		isNotNull 		// is null			isNull 		// or				or 		// and				and 	public void fun2(){ 		//1.获得session 		Session session=HibernateUtils.openSession(); 		//2.开启事务 		Transaction ts = session.beginTransaction(); 		//3.执行操作 		//创建Criteria查询对象 		Criteria criteria = session.createCriteria(Customer.class); 		//添加查询参数 		criteria.add(Restrictions.eq("cust_id", 1l)); 		//执行查询,获得结果 		Customer customer = (Customer) criteria.uniqueResult(); 		System.out.println(customer); 		//4.提交事务,关闭资源 		ts.commit(); 		session.close(); 	} 	@Test 	//分页查询 	public void fun3(){ 		//1.获得session 		Session session=HibernateUtils.openSession(); 		//2.开启事务 		Transaction ts = session.beginTransaction(); 		//3.执行操作 		//创建Criteria查询对象 		Criteria criteria = session.createCriteria(Customer.class); 		//添加查询参数,设置分页信息 		criteria.setFirstResult(1);//本页起始索引 		criteria.setMaxResults(3);//最大显示条数 		//执行查询,获得结果 		List list = criteria.list(); 		System.out.println(list); 		//4.提交事务,关闭资源 		ts.commit(); 		session.close(); 	} 	@Test 	//查询总条数 	public void fun4(){ 		//1.获得session 		Session session=HibernateUtils.openSession(); 		//2.开启事务 		Transaction ts = session.beginTransaction(); 		//3.执行操作 		//创建Criteria查询对象 		Criteria criteria = session.createCriteria(Customer.class); 		//添加查询参数,记录总条数 		criteria.setProjection(Projections.rowCount()); 		//执行查询,获得结果 		Long uniqueResult = (Long) criteria.uniqueResult();//注意返回值是Long 		System.out.println(uniqueResult); 		//4.提交事务,关闭资源 		ts.commit(); 		session.close(); 	} } 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!