文档详情

Hibernate查询方式.docx

发布:2017-07-26约6.25千字共8页下载文档
文本预览下载声明
Hibernate查询方式总的来说共有三种:HQL、QBC和SQL三种。但是细分可以有如下几种:一、HQL查询方式????这一种比较常用,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多。条件查询、分页查询、连接查询、嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象。其它的,包括一些查询函数(count(),sum()等)、查询条件的设定等,全都跟SQL语法一样。注意:?????在hql中关键字不区分大小写,但是属性和类名区分大小写示例1:??static void query(String name){??Session s=null;??try{???s=HibernateUtil.getSession();???//from后面是对象,不是表名???String hql=from Admin as admin where admin.aname=:name;//使用命名参数,推荐使用,易读。???Query query=s.createQuery(hql);???query.setString(name, name);???ListAdmin list=query.list();???for(Admin admin:list){????System.out.println(admin.getAname());??}??}finally{???if(s!=null)???s.close();?}}----对于多对一关系查询:?String hql = from Student where?Class.className?= 二班;(Student实体类中含有Class对象的引用。这样相当于两张表的联合查询)示例2(分页查询):????Query query = session.createQuery(from Customer corder by asc);query.setFirstResult(0);query.setMaxResults(10);List result = query.list();????说明:???–setFirstResult(int?firstResult):设定从哪一个对 象开始检索,参数firstResult表示这个对象在查询结果中的索引位置,索引位置的起始值为0。默认情况下,Query和Criteria接口从查 询结果中的第一个对象,也就是索引位置为0的对象开始检索。?????–setMaxResult(int?maxResults):设定一次最多检索出的对象数目。默认情况下,Query和Criteria接口检索出查询结果中所有的对象。适用情况:常用方法,比较传统,类似jdbc。缺点:新的查询语言,适用面有限,仅适用于Hibernate框架。二、QBC(Query By Criteria) 查询方式???这种方式比较面向对象方式,重点是有三个描述条件的对象:Restrictions,Order,Projections。使用QBC查询,一般需要以下三个步骤:???1、 使用Session实例 的createCriteria()方法创建Criteria对象???2、使用工具类Restrictions的方法为Criteria对象设置查询条件,Order工具类的方法设置排序方式,Projections工具类的方法进行统计和分组。???3、 使用Criteria对象的list()方法进行查询并返回结果Restrictions类的常用方法:Restrictions类的常用方法:方法名称描述Restrictions.eq等于Restrictions.allEq使用Map,Key/Valu进行多个等于的比对Restrictions.gt大于Restrictions.ge大于等于Restrictions.lt小于Restrictions.le小于等于Restrictions.between对应SQL的betweenRestrictions.like对应SQL的likeRestrictions.in对应SQL的inRestrictions.andand关系Restrictions.oror关系Restrictions.sqlRestrictionSQL限定查询Order类的常用方法:方法名称描述Order.asc升序Order.desc降序Projections类的常用方法方法名称描述Projections.avg求平均值Projections.count统计某属性的数量Projections.countDistinct统计某属性不同值的数量Projections.groupProperty指定某个属性为分组属性Projections.max求最大值Projections
显示全部
相似文档