Employee类、Department类、SessionFactoryTools类、Employee.hbm.xml文件、Department.hbm.xml文件、Hibernate.cfg.xml文件 都与12中的相同。
持久化层中的代码:
// 使用QBC方式查询:Query By Criteria
@Test
public void testQBC() throws Exception {
Session session = SessionFactoryTools.getSession();
session.beginTransaction();
// --------------------------------------------
// 创建Criteria对象
Criteria criteria = session.createCriteria(Employee.class);
// 增加过滤条件
criteria.add(Restrictions.gt("id", 1));
criteria.add(Restrictions.le("id", 10));
// 增加排序条件
criteria.addOrder(Order.asc("id"));
criteria.addOrder(Order.asc("name"));
// 设置分页
criteria.setFirstResult(0);
criteria.setMaxResults(2);
// criteria.uniqueResult();//设置唯一
// 执行查询
List<?> list = criteria.list();
// 显示结果
for (Object obj : list) {
if (obj.getClass().isArray()) {
System.out.println(Arrays.toString((Object[]) obj));
} else {
System.out.println(obj);
}
}
// --------------------------------------------
session.getTransaction().commit();
session.close();
}