Java软件开发基础知识梳理之(7)------Hibernate查询数据

来源:互联网 发布:如何更改淘宝店铺名称 编辑:程序博客网 时间:2024/05/17 21:57
一、查询数据的几种方式
1 通过Session.get()和Session.load()根据id获取单个实体对象
2 通过Query接口使用HQL查询数据,如
    Session session = HibernateSessionFactory.getSession();
  Criteria criteria = session.createCriteria(PE_Contact.class);
  criteria.add(Restrictions.gt("id", 10));
  criteria.add(Restrictions.like("firstName", "h%"));
  List<PE_Contact> resultList = criteria.list();
  System.out.println("recordNum = " + resultList.size());
  System.out.println(resultList);
  session.close();
3 使用Criteria进行查询
4 使用DetachedCriteria进行查询,如
  @SuppressWarnings("unchecked")
 @Test
 public void queryDataWithDetachedCriteria(){
  Session session = HibernateSessionFactory.getSession();
  DetachedCriteria detachedCriteria = creatDetachedCriteriaForPeContact();
  Criteria criteria = detachedCriteria.getExecutableCriteria(session);
  List<PE_Contact> resultList = criteria.list();
  System.out.println("recordNum = " + resultList.size());
  System.out.println(resultList);
  session.close();
 }
 
 private DetachedCriteria creatDetachedCriteriaForPeContact(){
  DetachedCriteria detachedCriteria = DetachedCriteria.forClass(PE_Contact.class);
  detachedCriteria.add(Restrictions.gt("id", 10));
  detachedCriteria.add(Restrictions.like("firstName", "h%"));
  return detachedCriteria;
 }
5 原生SQL查询
    public void queryDataWithNativeSql(){
   Session session = HibernateSessionFactory.getSession();
   Query query = session.createSQLQuery("select * from t_contact where id > ?");
   query.setParameter(0, 10);
   List<PE_Contact> resultList = query.list();
   System.out.println("recordNum = " + resultList.size());
   System.out.println(resultList);
   session.close();
  }
6 命名查询
7 QBE(Query By Example)例子查询方式,如
    public void queryDataByExample(){
   Session session = HibernateSessionFactory.getSession();
   PE_Contact pe_Contact = new PE_Contact();
   pe_Contact.setFirstName("ksg80ru2kb");
   Criteria criteria = session.createCriteria(PE_Contact.class);
   criteria.add(Example.create(pe_Contact));
   List<PE_Contact> resultList = criteria.list();
   System.out.println("recordNum = " + resultList.size());
   System.out.println(resultList);
   session.close();
   }
0 0