1、HQL查询详解

hqlhibernate query languagehibernate提供一种查询语言,hql语言和普通sql很相似,

区别:普通sql操作数据库表和字段,hql操作实体类和属性

查询所有: from 实体类名称

条件查询: from 实体类名称 where 属性名称=?

Hibernate零基础回顾-04

模糊查询

Hibernate零基础回顾-04

排序查询: from 实体类名称 order by 实体类属性名称 asc/desc

Hibernate零基础回顾-04

分页查询:hql操作中,在语句里面不能写limithibernateQuery对象封装两个方法实现分页操作

Hibernate零基础回顾-04

投影查询:查询不是所有字段值,而是部分字段的值

Hibernate零基础回顾-04

聚合函数查询

Hibernate零基础回顾-04

内连接

setLinkMan 是当前类中另外一个对象的属性名

Hibernate零基础回顾-04

返回listlist里面每部分是数组形式

Hibernate零基础回顾-04

迫切内连接

(1)迫切内连接和内连接底层实现一样的

2)区别:使用内连接返回list中每部分是数组,迫切内连接返回list每部分是对象

  from  Customer  c  inner  join  fetch  c.setLinkMan

Hibernate零基础回顾-04

左外连接

左外连接 from  Customer  c  left  outer  join  c.setLinkMan

迫切左外连接 from  Customer  c  left  outer  join  fetch  c.setLinkMan

左外连接返回list中每部分是数组,迫切左外连接返回list每部分是对象

右外连接

from  Customer  c  right  outer  join  c.setLinkMan

2、QBC查询详解

1 使用hql查询需要写hql语句实现,但是使用qbc时候,不需要写语句了,使用方法实现

2 使用qbc时候,操作实体类和属性

3 使用qbc,使用Criteria对象实现

 

查询所有

Hibernate零基础回顾-04

条件查询

Hibernate零基础回顾-04

模糊查询

Hibernate零基础回顾-04

排序查询

Hibernate零基础回顾-04

分页查询

Hibernate零基础回顾-04

统计查询

Hibernate零基础回顾-04

离线查询

Hibernate零基础回顾-04

3、Hibernate检索策略

立即查询:根id查询,调用get方法,一调用get方法马上发送语句查询数据库

Hibernate零基础回顾-04

延迟查询:调用load方法不会马上发送语句查询数据,只有得到对象里面的值时候才会发送语句查询数据库

Hibernate零基础回顾-04

延迟查询分类:

1)类级别延迟:根据id查询返回实体类对象,调用load方法不会马上发送语句

2)关联级别延迟:查询一个类中外键表的集合时

Hibernate零基础回顾-04

关联级别延迟操作

  在set标签上使用属性

(1)fetch:值select(默认)

(2)lazy:值

   true:延迟(默认)

   false:不延迟

   extra:极其延迟

Hibernate零基础回顾-04

Hibernate零基础回顾-04

Hibernate零基础回顾-04

极其延迟,需要什么值就查什么值,其他值一概不要。

 

批量抓取

场景:查询所有的客户,返回list集合,遍历list集合,得到每个客户,得到每个客户的所有联系人

batch-size值,值越大发送语句越少

Hibernate零基础回顾-04

相关文章: