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