使用hql查询需要写HQL语句,但是使用QBC查询则不需要写SQL语句,调用方法即可
一 查询所有
//创建对象
Criteria criteria = session.createCriteria(LinkMan.class);
//调用方法
List<LinkMan> list = criteria.list();
二 条件查询
(1)准确查询
//创建对象
Criteria criteria = session.createCriteria(LinkMan.class);
// 设置条件
criteria.add(Restrictions.eq("lkm_name", "杨过"));
List<LinkMan> list = criteria.list();
(2)模糊查询
criteria.add(Restrictions.like("lkm_name", "%东%"));
(3)排序
criteria.addOrder(Order.desc("lkm_id")); 按照这个字段降序排列
三 分页查询
Criteria criteria = session.createCriteria(LinkMan.class);
criteria.addOrder(Order.desc("lkm_id"));
criteria.setFirstResult(0);
criteria.setMaxResults(3);
List<LinkMan> list = criteria.list();
四 统计查询
Criteria criteria = session.createCriteria(LinkMan.class);
//设置条件
Object obj = criteria.setProjection(Projections.rowCount());
Long lobj = (Long)obj;
int count = lobj.intValue();
ts.commit();
五 离线查询
Session session = HibernateUtils.getSession();
Transaction ts = session.beginTransaction();
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(LinkMan.class);
//最终执行时才需要得到session
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List<LinkMan> list = criteria.list();