QBC查询语法
QBC查询语法
前言
Hibernate框架中独有的查询语法QBC(Query By Criteria),与HQL相同的是,是一种比HQL更加的面向对象的查询语言。在框架中使用Criteria的实例对数据库的访问,封装了许多的条件查询,让开发者不需要手动打查询语法比HQL更为的简便。
QBC查询语法的使用
- 通过SessionFactory工厂创建Session实例 - Session session = SessionFactory.getCurrentSession();
- 调用Session实例打开事务 - Transaction tx = session.beginTransaction();
- 创建Criteria实例 - Criteria criteria = session.createCriteria(Emp.class);
- 添加查询语句 - criteria.add(Restrictions.eq("id","1"));
- Criteria是延迟加载需要提交之前放入集合 - List<Emp> emps = criteria.list();
- 提交事务 - tx.commit();
简单的使用示例
    public List<Emp> CriteriaEmpCheck(EmpCheck empCheck){
    Transaction tx = null;
    List<Emp> list = null;
    try {
        tx = empDao.currSession().beginTransaction();
        Criteria criteria = empDao.currSession().createCriteria(Emp.class);
        criteria.add(Restrictions.like("ename",empCheck.getEnamelike()));
        criteria.add(Restrictions.between("hiredate",
                Tool.strToDate(empCheck.getCurrDate(),"yyyy-MM-dd"),
                Tool.strToDate(empCheck.getEndDate(),"yyyy-MM-dd")));
        criteria.add(Restrictions.between("sal",
                empCheck.getCurrSal(),empCheck.getEndSal()));
        list = criteria.list();
        tx.commit();
    }catch (HibernateException e){
        e.printStackTrace();
        if (tx!=null){
            tx.rollback();
        }
    }catch (Exception e){
        e.printStackTrace();
    }
    return list;
}本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Slikeの后花园!
