Hibernate的查询的方式
一、Hibernate的查询方式:OID查询
1、使用get方法
Customer customer = session.get(Customer.class,1l);
2、使用load方法
Customer customer = session.load(Customer.class,1l);
二、Hibernate的查询方式:对象导航检索
-
对象导航检索:Hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式。
LinkMan linkMan = session.get(LinkMan.class,1l); Customer customer = linkMan.getCustomer(); Customer customer = session.get(Customer.class,2l); Set<LinkMan> linkMans = customer.getLinkMans();
三、Hibernate的查询方式:HQL检索
-
HQL查询:Hibernate Query Language,Hibernate的查询语言,是一种面向对象的方式的查询语言,语法类似SQL。通过session.createQuery(),用于接收一个HQL进行查询方式。
1、初始化一些数据
2、HQL的简单查询
3、HQL的别名查询
4、HQL的排序查询
5、HQL的条件查询
6、HQL的投影查询
7、HQL的分页查询
8、HQL的分组统计查询
9、HQL的多表查询
四、Hibernate的查询方式:QBC检索
1、简单查询
2、排序查询
3、分页查询
4、条件查询
5、统计查询
6、离线条件查询(SSH)—DetachedCriteria
五、Hibernate的查询方式:SQL检索
1、SQL查询
Hibernate的抓取策略(优化)
一、延迟加载的概述
1、什么是延迟加载
2、延迟加载的分类
-
类级别的延迟加载
-
关联级别的延迟加载
Customer customer = session.get(Customer.class,1l);
customer.getLinkMans();----通过客户获得联系人的时候,联系人对象是否采用了延迟加载,称为是关联级别的延迟。
二、抓取策略
1、抓取策略的概述
2、上的fetch和lazy
-
fetch:抓取策略,控制SQL语句格式
- select :默认值,发送普通的select语句,查询关联对象
- join :发送一条迫切左外连接查询关联对象
- subselect :发送一条子查询查询其关联对象
-
lazy:延迟加载,控制查询关联对象的时候是否采用延迟
- true :默认值,查询关联对象的时候,采用延迟加载
- false :查询关联对象的时候,不采用延迟加载
- extra :及其懒惰。
-
在实际开发中,一般都采用默认值。如果有特殊的需求,可能需要配置join。
3、上的fetch和lazy
-
fetch :抓取策略,控制SQL语句格式。
- select :默认值,发送普通的select语句,查询关联对象。
- join :发送一条迫切左外连接。
-
lazy :延迟加载,控制查询关联对象的时候是否采用延迟。
- proxy :默认值,proxy具体的取值,取决于另一端的上的lazy的值。
- false :查询关联对象,不采用延迟。
- no-proxy :(不会使用)
-
在实际开发中,一般都采用默认值。如果有特殊的需求,可能需要配置join。
三、批量抓取
1、什么是批量抓取
2、测试批量抓取