Criteria 单表查询比较方便
Hibernate自创的无语局面向对象查询
查询所有对象
/**
* 查询所有对象
*/
@Test
public void test(){
Session session = HibernateUtils.getCurrentSession();
Transaction tx = session.beginTransaction();
Criteria criteria = session.createCriteria(Customer.class);
List<Customer> list = criteria.list();
System.out.println(list);
tx.commit();
}
条件查询
/**
* 条件查询
* > gt
* >= ge
* < lt
* <= le
* == eq
* != ne
* in in
* between and between
* like like
* is not null isNotNull
* is null isNull
* or or
* and and
*/
@Test
public void test1(){
Session session = HibernateUtils.getCurrentSession();
Transaction tx = session.beginTransaction();
//创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
//添加查询参数 查询cust_id id为1的custormer对象
criteria.add(Restrictions.eq("cust_id",1));
//List<Customer> list = criteria.list();
Customer c = (Customer) criteria.uniqueResult();
System.out.println(c);
tx.commit();
}
分页查询
/**
* 分页查询
*/
@Test
public void test2(){
Session session = HibernateUtils.getCurrentSession();
Transaction tx = session.beginTransaction();
//创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
//limit ?,? 设置分页信息
criteria.setFirstResult(1);
criteria.setMaxResults(4);
//执行查询
List<Customer> list = criteria.list();
//Customer c = (Customer) criteria.uniqueResult();
System.out.println(list);
tx.commit();
}
查询总记录数、
/**
* 查询总记录数
*/
@Test
public void test3(){
Session session = HibernateUtils.getCurrentSession();
Transaction tx = session.beginTransaction();
//创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
//设置查询的聚合函数
criteria.setProjection(Projections.rowCount());
//执行查询
Long i = (Long) criteria.uniqueResult();
//Customer c = (Customer) criteria.uniqueResult();
System.out.println(i);
tx.commit();
}