1、Criteria查询方式:
(1)一般方式:
缺点:每一次查询dao层都需要书写对应的方法,离线查询可以解决这个问题。
(2)离线方式:
2、离线查询
用DetachedCriteria来构造查询条件,然后将这个DetachedCriteria作为方法调用参数传递给业务层对象。
DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Student.class); detachedCriteria.add(Restrictions.eq("sex","男"));
业务层对象获得DetachedCriteria之后,可以在session范围内直接构造Criteria,进行查询,以下代码可以被多个对象对象所共用。
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Criteria criteria=detachedCriteria.getExecutableCriteria(session); List list=criteria.list(); System.out.println(list); transaction.commit(); session.close(); }