Hibernate基础学习(七)—检索方式
一、概述
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基础学习(七)—检索方式的更多相关文章
- Hibernate基础学习2
Hibernate基础学习2 测试hibernate的一级缓存,事务以及查询语句 1)Hibernate的一些相关概念 hibernate的一级缓存 1)缓存是为了提高该框架对数据库的查询速度 2)一 ...
- Hibernate —— HQL、QBC检索方式
一.HQL 检索方式 以双向的一对多来测试 HQL 检索方式.以 Department 和 Employee 为例. 建表语句: CREATE TABLE department ( dept_id ) ...
- Hibernate的三种常用检索方式
Hibernate 提供了以下几种检索对象的方式 ¨ 导航对象图检索方式: 根据已经加载的对象导航到其他对象 ¨ OID 检索方式: 按照对象的 OID 来检索对象 ¨ ...
- java框架之Hibernate(4)-几种检索方式
准备 模型及映射文件 package com.zze.bean; import java.util.HashSet; import java.util.Set; public class Class ...
- 总结hibernate框架的常用检索方式
1.hibernate框架的检索方式有以下几种: OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:通过query接口对象查询 QBC检索: ...
- Hibernate基础学习(五)—对象-关系映射(下)
一.单向n-1 单向n-1关联只需从n的一端可以访问1的一端. 域模型: 从Order到Customer的多对一单向关联.Order类中定义一个Customer属性,而在Customer类不用存放Or ...
- Hibernate基础学习(四)—对象-关系映射(上)
一.映射对象标识符 Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录.Hibernate使用对象标识符(OID)来建立内存中的对象和数 ...
- hibernate基础学习
转载自:http://blog.csdn.net/fb281906011/article/details/17628111 一:下载hibernate:http://hibernate.org/orm ...
- Hibernate基础学习(三)—Session
一.概述 Session接口是Hibernate向应用程序提供的操纵数据库最主要的接口,它提供了基本的保存.更新.删除和加载Java对象的方法. Session具有一个缓存,位于缓 ...
随机推荐
- POJ 2396 Budget 有上下界的网络流
POJ 2396 Budget 题意简述:给定矩阵(每个元素都是非负整数)各行各列的和,并且限制其中的某些元素,给出一个可行解,特殊评测.矩阵规模小于200*20. 网络流的模型是显而易见的,不过对 ...
- 漂亮的代码2:遍历文件夹目录,使用promise
看到一个问题: 找到文件夹下所有文件: 自己写了一个: function walk(dir, ext, callback) { ext = ext.charAt(0) === "." ...
- Javascript学习九
计时器setInterval() 在执行时,从载入页面后每隔指定的时间执行代码. 语法: setInterval(代码,交互时间); 参数说明: 1. 代码:要调用的函数或要执行的代码串. 2. 交互 ...
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
- Delphi中TApplication详解
转自:http://blog.sina.com.cn/s/blog_4d6f55d90100bmv9.html TApplication是用于Delphi应用程序的类型,该类在单元forms中声明.T ...
- web性能优化 来自《web全栈工程师的自我修养》
最近在看<web全栈工程师的自我修养>一书,作者是来自腾讯的前端工程师.作者在做招聘前端的时候问应聘者web新能优化有什么了解和经验,应聘者思索后回答“在发布项目之前压缩css和 Java ...
- 用js,css3 做的一个球
用css3属性很容易做一个立方体,但是要做一个球体,会相对复杂些 原理是:球可以看做是由无数个圆圈构成,然后就可以用圆圈来做球, 下面的例子是我做的一个小球,由72个圆圈组成.如果把每个圆圈的背景颜色 ...
- asp.net 后台任务作业框架收集
收集几个可以用于 asp.net 的后台任务工具库并简单介绍. hangfire.io 支持 单次任务(Fire-and-forget),延时任务(Delayed),重复任务(Recurring ), ...
- Greenplum 简单性能测试与分析
如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理 ...
- linux codeblocks汉化
参考window汉化codeblocks,linux下有点麻烦,就是要找到codeblocks的文件安装在哪里.一般来说,linux下安装的软件大都在/usr/share/文件夹下,所以进入/usr/ ...