主要步骤
1、获得hibernate的Session对象
//加载hibernate.cfg.xml配置
Configuration config=new Configuration().configure();
//获取Session Factory
SessionFactory sessionFactory=config.buildSessionFactory();
//得到一个Session
Session session=sessionFactory.openSession();
2、通过Session获得Criteria对象
//通过Session获得一个Criteria对象
Criteria criteria=session.createCriteria(Customer.class);
3、使用Restrictions的静态方法创建Criterion条件对象。Restrictions类中提供了一系列用于设定查询条件的静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件
4、向Criteria对象中添加Criterion查询条件。Criteria的add()方法用于加入查询条件。
//使用Restrictions的eq方法设定查询条件为name=“王五”,
//向Criteria对象中添加name="王五"的查询条件
criteria.add(Restrictions.eq("name", "王五"));
5、执行Criteria的list()或uniqueResult()获得结果
//使用Restrictions的eq方法设定查询条件为name=“王五”,
//向Criteria对象中添加name="王五"的查询条件
criteria.add(Restrictions.eq("name", "王五"));
@Test
public void qbcTest() {
//加载hibernate.cfg.xml配置
Configuration config=new Configuration().configure();
//获取Session Factory
SessionFactory sessionFactory=config.buildSessionFactory();
//得到一个Session
Session session=sessionFactory.openSession();
//开启事务
Transaction t=session.beginTransaction();
//通过Session获得一个Criteria对象
Criteria criteria=session.createCriteria(Customer.class);
//使用Restrictions的eq方法设定查询条件为name=“王五”,
//向Criteria对象中添加name="王五"的查询条件
criteria.add(Restrictions.eq("name", "王五"));
//执行Criteria的list()获得结果
@SuppressWarnings("unchecked")
List<Customer>cs=criteria.list();
for (Customer c: cs) {
System.out.println(c);
}
t.commit();
session.close();
sessionFactory.close();
}
当结果为null或者只有一个时可以用uniqueResult()方法
Customer aCustomer =(Customer)criteria.uniqueResult();
//List<Customer>cs=criteria.list();
//for (Customer c: cs) {
// System.out.println(c);
//}
System.out.println(aCustomer);