Hibernate零基础回顾-04

1、HQL查询详解

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

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

查询所有: from 实体类名称

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

模糊查询

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

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

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

聚合函数查询

内连接

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

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

迫切内连接

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

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

  from  Customer  c  inner  join  fetch  c.setLinkMan

左外连接

左外连接 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对象实现

 

查询所有

条件查询

模糊查询

排序查询

分页查询

统计查询

离线查询

3、Hibernate检索策略

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

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

延迟查询分类:

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

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

关联级别延迟操作

  在set标签上使用属性

(1)fetch:值select(默认)

(2)lazy:值

   true:延迟(默认)

   false:不延迟

   extra:极其延迟

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

 

批量抓取

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值