网站大量收购独家精品文档,联系QQ:2885784924

Hibernate查询方式.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate查询方式

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

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档