一、概述

     Hibernate有五种检索方式。

1.导航对象图检索方式

     根据已经加载的对象,导航到其他对象。

		Order order = (Order)session.get(Order.class,1);
Customer customer = order.getCustomer();

 

2.OID检索方式

     根据对象的OID来检索对象。

		session.get(Customer.class,1);
session.load(Customer.class,1);

get和load的区别

(1)get()使用的是立即检索策略。

    load()使用的延迟检索策略,即load()方法返回的是只有一个id属性的代理对象,只有真正使用对象时,才会发出Sql语句。

(2)get()如果查询的记录不存在返回null。

    load()如果查询不存在的记录则会抛异常,ObjectNotFoundException。

 

3.HQL检索方式

     使用面向对象的HQL查询语言。

 

4.QBC检索方式

    使用QBC(Query By Criteria)API来检索对象

 

5.本地SQL检索

    使用本地数据库的SQL查询语句。

session.createSQLQuery(String sql);

 

二、HQL语句

1.概述

HQL(Hibernate Query Language)是面向对象的查询,查询的是对象和对象的属性,是Hibernate特有的。

 

2.简单查询

 

3.简单条件查询

通过HQL检索一个类的实例时,如果查询语句的其他地方需要引用它,应该为这个类指定一个别名。

 

4.排序查询

结果:

     Customer [cid=3, cname=王五]

     Customer [cid=2, cname=李四]

     Customer [cid=1, cname=张三]

Hibernate基础学习(七)—检索方式的更多相关文章

  1. Hibernate基础学习2

    Hibernate基础学习2 测试hibernate的一级缓存,事务以及查询语句 1)Hibernate的一些相关概念 hibernate的一级缓存 1)缓存是为了提高该框架对数据库的查询速度 2)一 ...

  2. Hibernate —— HQL、QBC检索方式

    一.HQL 检索方式 以双向的一对多来测试 HQL 检索方式.以 Department 和 Employee 为例. 建表语句: CREATE TABLE department ( dept_id ) ...

  3. Hibernate的三种常用检索方式

    Hibernate 提供了以下几种检索对象的方式 ¨       导航对象图检索方式:  根据已经加载的对象导航到其他对象 ¨       OID 检索方式:  按照对象的 OID 来检索对象 ¨   ...

  4. java框架之Hibernate(4)-几种检索方式

    准备 模型及映射文件 package com.zze.bean; import java.util.HashSet; import java.util.Set; public class Class ...

  5. 总结hibernate框架的常用检索方式

    1.hibernate框架的检索方式有以下几种: OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:通过query接口对象查询 QBC检索: ...

  6. Hibernate基础学习(五)—对象-关系映射(下)

    一.单向n-1 单向n-1关联只需从n的一端可以访问1的一端. 域模型: 从Order到Customer的多对一单向关联.Order类中定义一个Customer属性,而在Customer类不用存放Or ...

  7. Hibernate基础学习(四)—对象-关系映射(上)

    一.映射对象标识符      Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录.Hibernate使用对象标识符(OID)来建立内存中的对象和数 ...

  8. hibernate基础学习

    转载自:http://blog.csdn.net/fb281906011/article/details/17628111 一:下载hibernate:http://hibernate.org/orm ...

  9. Hibernate基础学习(三)—Session

    一.概述      Session接口是Hibernate向应用程序提供的操纵数据库最主要的接口,它提供了基本的保存.更新.删除和加载Java对象的方法.      Session具有一个缓存,位于缓 ...

随机推荐

  1. winform调用cmd命令

    string str = Console.ReadLine(); System.Diagnostics.Process p = new System.Diagnostics.Process(); p. ...

  2. 打造“黑客“手机--Kali Nethunter

    从三月份开始,继续更新技术文章.一个月没有更新技术文章了,这一个月有一部分时间是在休息,另一部分时间是在学习汇编和操作系统,沉淀底层和逆向方面的技术. 今年年初,为了玩一下 kali NetHunte ...

  3. HTML第一课

    <标签名 属性>内容</标签名> <标签/> 静态网页与动态网页的区别:是否从数据库提取数据相对路径跟绝对路径../代表高一级的&nbsp牛逼的空格< ...

  4. C# .NET更智能的数据库操作的封装

    前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注 ...

  5. 安装 MySQL 后,需要调整的 10 个性能配置项

    注意:这篇博文的更新版本在这儿,MySQL 5.7 适用! 原文:Ten MySQL performance tuning settings after installation 在本文中,我们将探讨 ...

  6. lxd容器之GPU发现和加载

    lxd gpu设备发现: // /dev/nvidia[0-9]+ type nvidiaGpuCards struct { path string major int minor int id st ...

  7. 用ASP.NET创建网站

    ASP.NET提供三种框架来创建web应用:WebForms,ASP.NET MVC和ASP.NET WebPages.这三种框架都是稳定成熟的,你可以用任何一种方式开发一个很棒的web应用.不管你选 ...

  8. Django之Cookie

    Cookie 在浏览器端(客户端)保存的键值对,特性:每次http请求都会携带.           举个例子:{"name":身份证号} 1丶获取cookie request.C ...

  9. KMP算法的优化与详解

    文章开头,我首先抄录一些阮一峰先生关于KMP算法的一些讲解. 下面,我用自己的语言,试图写一篇比较好懂的 KMP 算法解释. 1. 首先,字符串"BBC ABCDAB ABCDABCDABD ...

  10. laravel初次学习总结及一些细节

    最近学习了laravel,先简单谈谈学习的感受吧 刚开始一周多一点的时间先把laravel的开发文档看了一遍,,感觉刚开始接触时的感觉laravel的目录与thinkphp又不一样,它们的渲染模板的方 ...