hibernate框架学习之数据抓取(加载)策略helloworld
2024-10-18 02:20:32
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>
最新文章
- 免费公开课,讲解强大的文档集成组件Aspose,现在可报名
- 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心
- mysql 内连接、左连接、右连接
- Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
- Backbone.js学习之初识hello-world
- bootstrap sr-only
- 浙江大学PAT考试1009~1012(1010上帝是冠军。。)
- NET开发面向对象2
- 【Android】再来一篇Fragment懒加载(只加载一次哦)
- 用SQL表达连接与外连接
- linux 工具
- 解决插值表达式闪烁问题 - v-cloak
- C++虚表详解
- Win10系列:JavaScript写入和读取文件
- JAVA开发人员画图表总结(ECHARTS)
- 【Unity】4.3 地形编辑器
- 玩转TypeScript(引言&;文章目录) --初看TypeScript.
- Android之从TCP/IP、HTTP看Socket通信
- day91 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
- Node.js modules you should know about: request
热门文章
- @jsonProperty 实现返回自定义属性名字
- 【leetcode-102,107,103】 二叉树的层次遍历
- extern ";C"; 含义
- VS Code +node npm 调试 js
- ArcGis Python脚本——要素图斑自动编号,自上而下,从左到右
- MySQL忘记root密码的解决办法
- Django眼中的MVC
- Spring Boot 2程序不能加载 com.mysql.jdbc.Driver 问题
- spring注解第05课 FactoryBean
- Tippy.js – 轻量的 Javascript Tooltip 工具库