复习
day1
环境搭建
CRUD操作DB
6个核心的API
day2
TO PO DO 及其状态切换
OID 自然主键 代理主键(uuid)
一级缓存 Session绑定
load/get
关系
1对1
1对多(重点) 一set one-to-many 多many-to-one
对多对 两边都是set many-to-many
表结构 外键
对象 Set 对象
配置
级联操作 cascade 多
inverse true/false
--------------------------------------------
数据查询(数据检索)
OID数据查询方式
load/get 3个不同点
HQL数据查询方式
HQL语句 Query
QBC数据查询方式
Criteria
本地SQL查询方式
SQL语句 SQLQuery
OGN数据查询方式
获取到了对象后,就可以读取对象中所包含的对象的属性
对象名.对象名.属性
sm.teacher.teacherName

HQL数据查询方式
1.简单查询
select内容是按照数据库的顺序给定的,开发中字段
2.链式格式
3.查询结果的获取
查询数据总量:
多条数据
单一数据
查询结果
单一对象或者单一属性
多个属性或对象
4.别名
5.聚合函数使用
6.分页
7.条件查询
参数设定可以使用索引格式或者使用变量名格式
设置参数
setParameter(??,??)
setLong(??,??) setString(??,??)
setEntity(??,对象)
*对象必须是DO PO(具有OID)
8.投影
构造方法
List
Map
0 李若亮
1 Jock
0 张三丰
1 张真人
9.分组
group by 属性
10.排序
order by 属性
11.多态查询(不用)
OrderModel
Order1Model
Order2Model
如果当前模型在cfg.xml中注册了,包名可以省略不写
java.lang.Object
TeacherModel
12.配置格式的查询
1.在任意的hbm.xml文件中添加命名的查询HQL,query元素属于hibernate-mapping子元素,不是class的子元素
<query name="getAll">
<![CDATA[from TeacherModel where teacherName = :name]]>
</query>
2.Query对象获取
s.getNamedQuery(配置查询的名称"getAll")
3.其他内容同普通查询
以上操作均为单表查询
-----------------
以下操作为多表查询
多表查询,7种
交叉连接(笛卡尔积)
内连接
内连接
“from TeacherModel tm inner join tm.students s”
数据模型:主表数据 主表关联的数据
数据总量:关联数据总量
迫切内连接
“from TeacherModel tm inner join fetch tm.students s”
数据模型:主表数据
数据总量:关联数据总量
隐式内连接
“from TeacherModel”
数据模型:主表数据
数据总量:主表数据总量
外连接
左外连接
“from TeacherModel tm left outer join tm.students s ”
数据模型:主表数据 主表关联的数据
数据总量:从表被关联数据总量+主表未关联数据总量
迫切左外连接
“from TeacherModel tm left outer join fetch tm.students s ”
数据模型:主表数据
数据总量:从表被关联数据总量+主表未关联数据总量
右外连接
“from TeacherModel tm right out join tm.students s”
数据模型:主表数据 主表关联的数据
数据总量:从表数据总量

迫切连接与非迫切连接区别
0.获取的数据总量都相同
1.非迫切连接包含主和从
2.迫切连接只包含主

hibernate框架学习第五天:数据查询、投影等的更多相关文章

  1. hibernate框架学习笔记7:HQL查询、Criteria查询简介

    HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...

  2. hibernate框架学习笔记11:Criteria查询详解

    创建实体类对象: package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Custome ...

  3. hibernate框架学习笔记10:HQL查询详解

    HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.S ...

  4. hibernate框架学习之数据查询(QBC)

    lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...

  5. hibernate框架学习之数据查询(HQL)

    lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...

  6. hibernate框架学习之使用SQLQuery查询数据

    SQLQuery对象的获取 Hibernate支持使用原生SQL语句进行查询,通过session对象获得SQLQuery对象进行,需要传入SQL语句 SQLQuery createSQLQuery(S ...

  7. hibernate框架学习第六天:QBC、分页查询、投影、数据加载策略、二级缓存

    QBC查询 1.简单查询 Criteria c = s.createCriteria(TeacherModel.class); 2.获取查询结果 多条:list 单挑:uniqueResult 3.分 ...

  8. hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等

    核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...

  9. hibernate的基础学习--多表关联数据查询

    Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN ...

随机推荐

  1. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)

    一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...

  2. Freemarker中的日期输出

    <p> ${scheme.createTime?string("yyyy年MM月dd日 HH:mm:ss")}</p>

  3. Python复习笔记(六)网络编程(udp/tcp)

    一.网络-udp(用户数据报协议) 用户数据报协议 类似写信,不安全,数据有可能丢 1.1 ip地址 注意: IP地址127.0.0.1 ~ 127.255.255.255 用于回路测试 私有ip地址 ...

  4. java定时器实现总结

    前言:Java定时器目前主要有3种实现方式:JDK组件,Spring Task,Quartz框架. 1. JDK组件(1) java.util.TimerTask MyTimerTask.java: ...

  5. Win32程序框架

    // WinMsg.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #include " ...

  6. ElasticSearch - Shard数调优(ElasticSearch性能)

    序言 资料 https://blog.csdn.net/waneyongfu/article/details/78215972

  7. 【四】Ribbon负载均衡

    1.概述1.1.是什么 Spring Cloud Ribbon 是基于Netflix Ribbon实现的一套客户端负载均衡的工具. 简单的说, Ribbon是Netflix发布的开源项目,主要功能是提 ...

  8. python3.x与2.x区别

    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...

  9. luogu P4770 [NOI2018]你的名字

    传送门 upd 19.4.24: WC这个做法真的有问题,不往回跳会WA是因为一开始跳到了S[1...l-1]所对应的点,然后往后接字符的时候可能会因为不在正确的endpos中,然后往回跳过头,其实一 ...

  10. ELK平台搭建(下)

    1. 目的 为指导在Centos6.8系统下搭建标准ELK平台的工作,特编写本施工文档. 2. 定义 Elasticsearch Logstash Kibana结合Redis协同工作. 3. 适用范围 ...