Hibernate框架之HQL查询与Criteria 查询的区别

Hibernate框架提供了HQL查询和Criteria 查询。下面对这两种查询分别做个例子。也好对这两种查询方法有个大概的了解。就用房屋信息表做例子,查询所有房屋信息。

 

HQL语句查询所有房屋信息:

/*
 * 查询所有房屋
 * 
 * (non-Javadoc)
 * @see Dao.HouseDao#selecthouse()
 */
    public List<House> selecthouse() {
        // TODO Auto-generated method stub
                   //获取连接
         Session session = HibernateUtil.getSession();
                      //查询房屋实体类
        String hql="from House";
        Query q=cr=session.createQuery(hql);
         
          List list = cr.list();

          return list;
      
    }

Criteria 语句查询所有房屋信息:

/*
 * 查询所有房屋
 * 
 * (non-Javadoc)
 * @see Dao.HouseDao#selecthouse()
 */
    public List<House> selecthouse() {
        // TODO Auto-generated method stub
         Session session = HibernateUtil.getSession();
         //创建Criteria对象
         Criteria cr=session.createCriteria(House.class);
                         List list = cr.list();

          return list;
      
    }

通过两者的比较,我们可以看出:

1、HQL语句必须写相应的HQL查询语句,而Criteria 语句直接把实体类对象放入类中,省略了查询语句。

2、HQL查询,必须具备一定的SQL基础。而Criteria查询不需要任何SQL基础。

3、HQL查询比Criteria查询用的范围更广,建议使用HQL查询。但也要对Criteria查询有所了解。

您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 

如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦   

如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 2276292708@qq.com

如果需要转载,请注明出处,谢谢!!

 

posted on 2015-08-06 19:41  梦之航  阅读(4128)  评论(0编辑  收藏  举报

导航