hibernate框架学习之数据抓取(加载)策略helloworld
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query;
import org.hibernate.Session; import cn.itcast.h3.query.hql.vo.TeacherModel;
import cn.itcast.util.HibernateUtil; public class MainRelaApp {
//fetch="select" lazy="false"
void selectFalse(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="select" lazy="true"
void selectTrue(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents());
System.out.println(queryList.get(0).getStudents().size()); s.close();
}
//fetch="select" lazy="extra"
void selectExtra(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents());
System.out.println(queryList.get(0).getStudents().size()); s.close();
}
//fetch="subselect" lazy="false"
void subselectFlase(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents());
System.out.println(queryList.get(0).getStudents().size()); s.close();
}
//fetch="subselect" lazy="true"
void subselectTrue(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
// System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="subselect" lazy="extra"
void subselectExtra(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="subselect" lazy="extra" Query-》OID load get
void subselectExtra2(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel where uuid = 1"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="join" lazy="false"
void joinFalse(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="join" lazy="true"
void joinTrue(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="join" lazy="extra"
void joinExtra(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
System.out.println(queryList.get(0).getStudents().size());
System.out.println(queryList.get(0).getStudents()); s.close();
}
//fetch="join" lazy="extra" get OID
void joinExtra2(){
Session s = HibernateUtil.getSession(); TeacherModel tm = (TeacherModel) s.get(TeacherModel.class, 2L);
System.out.println(tm.getStudents().size());
System.out.println(tm.getStudents());
s.close();
}
//批量抓取策略
void batchQuery(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from TeacherModel"); List<TeacherModel> queryList = q.list();
// System.out.println(queryList.get(0).getStudents().size());
// System.out.println(queryList.get(0).getStudents()); s.close();
}
public static void main(String[] args) {
new MainRelaApp().batchQuery();
}
}
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query;
import org.hibernate.Session; import cn.itcast.h3.query.hql.vo.StudentModel;
import cn.itcast.util.HibernateUtil; //从关联数据检索策略
public class SubRelaApp {
//fetch="select" lazy="false"
void selectFlase(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from StudentModel"); List<StudentModel> queryList = q.list();
System.out.println(queryList.get(0).getTeacher()); s.close();
}
//fetch="select" lazy="proxy"
void selectProxy(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from StudentModel"); List<StudentModel> queryList = q.list();
// System.out.println(queryList.get(0).getTeacher());
// System.out.println(queryList.get(11).getTeacher());
// System.out.println(queryList.get(21).getTeacher()); s.close();
}
//fetch="join" lazy="false"
void joinFalse(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from StudentModel"); List<StudentModel> queryList = q.list();
System.out.println(queryList.get(0).getTeacher());
System.out.println(queryList.get(11).getTeacher());
System.out.println(queryList.get(21).getTeacher()); s.close();
}
//fetch="join" lazy="proxy"
void joinProxy(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from StudentModel"); List<StudentModel> queryList = q.list();
System.out.println(queryList.get(0).getTeacher());
System.out.println(queryList.get(11).getTeacher());
System.out.println(queryList.get(21).getTeacher()); s.close();
}
//fetch="join" lazy="proxy" 使用OID查询
void joinProxy2(){
Session s = HibernateUtil.getSession(); StudentModel sm = (StudentModel) s.get(StudentModel.class, 4L);
System.out.println(sm.getTeacher()); s.close();
} //批量加载
void batchQuery(){
Session s = HibernateUtil.getSession(); Query q = s.createQuery("from StudentModel"); List<StudentModel> queryList = q.list();
// System.out.println(queryList.get(0).getTeacher());
// System.out.println(queryList.get(11).getTeacher());
// System.out.println(queryList.get(21).getTeacher()); s.close();
}
public static void main(String[] args) {
new SubRelaApp().batchQuery();
}
}
TeacherModel.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
'-//Hibernate/Hibernate Mapping DTD 3.0//EN'
'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'>
<hibernate-mapping>
<class name="cn.itcast.h3.query.hql.vo.TeacherModel" table="tbl_teacher" lazy="false">
<id name="uuid" column="uuid">
<generator class="native" />
</id> <property name="teacherName"/>
<property name="nick"/> <set
fetch="select"
lazy="false"
batch-size="5"
name="students"
>
<key column="teacherUuid"/>
<one-to-many class="cn.itcast.h3.query.hql.vo.StudentModel"/>
</set>
</class>
</hibernate-mapping>
hibernate框架学习之数据抓取(加载)策略helloworld的更多相关文章
- hibernate框架学习之数据抓取(加载)策略
Hibernate获取数据方式 lHibernate提供了多种方式获取数据 •load方法获取数据 •get方法获取数据 •Query/ Criteria对象获取数据 lHibernate获取的数据分 ...
- hibernate框架学习之数据查询(HQL)
lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...
- hibernate框架学习之数据查询(QBC)helloworld
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Criteria; import org.hib ...
- hibernate框架学习之数据查询(QBC)
lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...
- hibernate框架学习之数据查询(HQL)helloworld
package cn.itcast.h3.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Se ...
- hibernate框架学习之数据查询(本地SQL)
本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery(&q ...
- hibernate框架学习笔记4:主键生成策略、对象状态
创建一个实体类: package domain; public class Customer { private Long cust_id; private String cust_name; pri ...
- Hibernate 加载策略得总结
Hibernate 加载策略得总结 加载策略(优化查询): 策略种类: 延迟加载: 等到使用的时候才会加载数据. 立即加载: 不管使用不使用,都会立刻将数据加载. 策略的应用: 类级别的加载策略. 关 ...
- hibernate框架学习第六天:QBC、分页查询、投影、数据加载策略、二级缓存
QBC查询 1.简单查询 Criteria c = s.createCriteria(TeacherModel.class); 2.获取查询结果 多条:list 单挑:uniqueResult 3.分 ...
随机推荐
- STM32学习笔记:【001】常见数据查阅
了方便开发学习,现整理在学习过程中经常查阅的资料 (注意,以下资料都可以在ST给出官方手册中查到) 本人所持型号:STM32F429ZI-DISCOVERY, 芯片内核 :Cortex - ...
- Golang入门教程(十四)结构体和类详解
golang中并没有明确的面向对象的说法,实在要扯上的话,可以将struct比作其它语言中的class. 类声明 type Book struct { Title string Author stri ...
- 028、限制容器对CPU的使用(2019-01-23 周三)
参考https://www.cnblogs.com/CloudMan6/p/7003199.html 默认情况下,所有容器都可以平等的使用host cpu资源,没有限制 docker 可以通过 ...
- GCC编译器原理(二)------编译原理一:ELF文件(2)
四. ELF 文件格式分析 ELF文件(目标文件)格式主要四种: 可重定向文件: 文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件.(目标文件或者静态库文 ...
- luogu 2569 股票交易 单调队列dp
注意转移方程 分1.凭空买 2.不买不卖 3.在原来基础上买 4.在原来基础上卖 四种情况 head=1,tail=0;再判断一下head<=tail也可以 #include<bits/s ...
- Java EE之Struts2异常[No mapping found for dependency [type=java.lang.String, name='actionPackages'#java.lang.RuntimeException]【摘抄】
本博文摘自:http://www.blogjava.net/nkjava/archive/2009/03/29/262705.html 出现这个问题,可能是添加了struts2-codebehind包 ...
- windows Apache 环境下配置支持HTTPS的SSL证书
windows Apache 环境下配置支持HTTPS的SSL证书 1.准备工作 1)在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有SSL版本的A ...
- org.apache.flume.conf.ConfigurationException: Channel c1 not in active set.
1 错误详细信息 WARN conf.FlumeConfiguration: Could not configure sink k1 due to: Channel c1 not in active ...
- python之接口开发基础知识
一.开发接口的作用 1.mock 服务:在别的接口没有开发完成的时候可以模拟一些接口以便测试已经开发完成的接口,例如假的支付接口,模拟支付成功.支付失败. 2.了解接口是如何实现的:数据交互.数据返回 ...
- 【mmall】Guava框架
Guava 简介:http://www.yiibai.com/guava 本项目主要用到了Guava缓存