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.分 ...
随机推荐
- JAVA核心技术I---JAVA基础知识(单例模式和final关键字)
一:单例模式 C++设计模式中提及,不再赘述设计模式---对象性能模式之单例模式(Singleton) public class single{ static single Instance=new ...
- ACM-ICPC 2018 焦作赛区网络预赛 K Transport Ship (多重背包)
https://nanti.jisuanke.com/t/31720 题意 t组样例,n种船只,q个询问,接下来n行给你每种船只的信息:v[i]表示这个船只的载重,c[i]表示这种船只有2^(c[i] ...
- 微信小程序入门教程(一)API接口数据记录
今天测试用小程序调用API接口,发现有些数据打印都是对象,怎么全部打印详细点来 小程序代码: httpsearch: function (name, offset, type, cb) { wx.re ...
- windows server 2008 r2 负载平衡 找不到主机 解决方案
在C:\Windows\System32\drivers\etc文件夹中的host文件里手工将主机名WIN-********解析至IP 即可.
- 【转载】C#:使用双缓冲让界面绘制图形时避免闪烁
https://blog.csdn.net/fujie724/article/details/5767064#
- 服务器中同一个【ip:port】可以多次accept的问题
一.多次bind的问题 服务器的[ip:port]被某套接字绑定成功后,在该绑定解除之前,同一个[ip:port],不能再次被其他套接字绑定,否则绑定失败 二.多次accept的问题 有外来连接时,若 ...
- WebSocket 快速开始
[Html5客户端API] 1.创建websocket对象 var connection = new WebSocket('ws[s]://www.example.com/chat',可选自己实现的 ...
- rabbitMQ学习2-Python与rabbitmq
python客户端 # rabbitmq官方推荐的python客户端pika模块 pip3 install pika 应用场景1:单发送单接收 1.生产-消费者模型 P 是生产者 C 是消费者 中间h ...
- 嵌入式4412开发板学习知识-Linux系统基础知识
1. 什么是Linux系统编程 Linux系统编程分为三个部分:系统调用.C库和C编译器. 系统调用系统编程的基础是系统调用,也结束于系统调用.在带有操作系统的嵌入式开发中,需要从操作系统申请一些服务 ...
- MFCC/Filter Bank的提取流程
预加重:通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响. 分帧:根据语音的短时平稳特性,语音可以以帧为单位进行处理,实验中选取的语音帧长为32ms,帧移为16ms ...