[计算机软件及应用]hibernate 查询策略

[计算机软件及应用]hibernate 查询策略

ID:27744037

大小:1.60 MB

页数:33页

时间:2018-12-04

[计算机软件及应用]hibernate 查询策略_第1页
[计算机软件及应用]hibernate 查询策略_第2页
[计算机软件及应用]hibernate 查询策略_第3页
[计算机软件及应用]hibernate 查询策略_第4页
[计算机软件及应用]hibernate 查询策略_第5页
资源描述:

《[计算机软件及应用]hibernate 查询策略》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate查询策略回顾多对一关联一对一关联一对多关联多对多关联目标HQL查询CriteriaQueryNativeSQL查询Hibernate数据查询数据查询与检索是Hibernate的一个亮点。Hibernate的数据查询方式主要有3种,它们是:HibernateQueryLanguage(HQL)CriteriaQuery(QBC)(QBE)NativeSQL下面对这3种查询方式分别进行讲解。HQLHibernateQueryLanguage(HQL)提供了十分强大的功能,推荐大家使用这种查询方式。H

2、QL具有与SQL语言类似的语法规范,只不过SQL针对表中字段进行查询,而HQL针对持久化对象,它用来取得对象,而不进行update、delete和insert等操作。而且HQL是完全面向对象的,具备继承、多态和关联等特性。HQLfrom子句from子句是最简单的HQL语句,例如fromStudent,也可以写成selectsfromStudents。它简单地返回Student类的所有实例。除了Java类和属性的名称外,HQL语句对大小写并不敏感,所以在上一句HQL语句中,from与FROM是相同的,但是Stude

3、nt与student就不同了,所以上述语句写成fromstudent就会报错。HQL下列程序演示如何通过执行from语句取得所有的Student对象。Queryquery=session.createQuery(“fromStudent”);Listlist=query.list();for(inti=0;i

4、nt,Course”,并不简单地返回两个对象,而是返回这两个对象的的笛卡儿积,这类似于SQL语句中字段的全外连接。在实际应用中,像“fromStudent,Course”这样的语句几乎不会出现。HQLselect子句有时并不需要得到对象的所有属性,这时可以使用select子句进行属性查询,例如,selects.namefromStudents。下面程序演示如何执行这个语句:Queryquery=session.createQuery(“selects.namefromStudents”);Listlist=que

5、ry.list();for(inti=0;i

6、bj[]=(Object[])list.get(i);System.out.println(name(obj[0]+“的性别是:”+obj[1]));}HQL在使用属性查询时,由于使用对象数组,操作和理解都不太方便,如果将一个object[]中所有成员封装成一个对象就方便多了。下面的程序将查询结果进行了实例化:Queryquery=session.createQuery(“selectnewStudent(s.name,s.sex)fromStudents”);Listlist=query.list();for(

7、inti=0;i

8、计记录条数min():求最小值max():求最大值sum():求和avg():求平均值例如,要取得Student实例的数量,可以编写如下HQL语句:selectcount(*)fromStudent取得Student的平均年龄的HQL语句如下:selectavg(s.age)fromStudentass可以使用distinct去除重复数据:selectdistincts.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。