一、查询数据的几种方式
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();
}
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();
}