HibernateTemplate使用
HibernateTemplate两种查询
findByCriteria查询 :适用于无条件查询与复杂查询
findByExample查询: 适用于给明条件的查询(表现:sql语句中的逻辑=)
HibernateTemplate封装了Criteria查询方式形成了这两种查询,它们只是在创建方式与细节处理上不一样;
数据库表信息:
无条件查询(sql语句不含where)
//先初始化HibernateTemplate hibernateTemplate;
//......再
DetachedCriteria criteria=DetachedCriteria.forClass(Student.class);
// DetachedCriteria criteria = DetachedCriteria.forClass
//(Student.class,"com.demo.entity.Students");//两种创建方式
List<Student> ls= (List<Student>) hibernateTemplate.findByCriteria(criteria);
给定明确条件的查询
本例查询18岁的全部学生
public List<Student> findByAge(int age) {
Student stu=new Student();
stu.setAge(age);
List<Student> ls= (List<Student>)hibernateTemplate.findByExample(stu);
return ls;
}
抽取部分记录数
- hibernateTemplate.findByExample(exampleEntity, firstResult, maxResults)
- hibernateTemplate.findByCriteria(criteria, firstResult, maxResults)
两种分页方法的firstResult, maxResults的意义一样:
firstResult:指的是分页开始的第一条数据的开始点,注:数据库第一条记录的firstResult=0
maxResults:指分页显示的最大记录数;
findByCriteria方式
从第一条记录开始,查询4条学生记录
DetachedCriteria criteria = DetachedCriteria.forClass(Student.class);
List<Student> ls= (List<Student>) hibernateTemplate.findByCriteria(criteria, 0, 4);
findByExample方式
从第4条记录开始,查询18岁学生,且最多查询2条学生信息
Student stu=new Student();
stu.setAge(18);
List<Student> ls= (List<Student>