复习
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. 设计模式---接口隔离模式之门面模式(Façade)

    前提:接口隔离模式 在组建构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接接口(稳定的),来隔离本来相互紧密关联的接口是一种常见的解决方案. 典型模式: 门面模 ...

  2. CSS3笔记3

    1.CSS的层叠性 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  3. Hadoop完全分布式安装

    一.软件版本 Hadoop版本号:hadoop-2.6.0.tar: VMWare版本号:VMware-workstation-full-11.0.0-2305329 Ubuntu版本号:ubuntu ...

  4. 【2】【leetcode-105,106】 从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树

    105. 从前序与中序遍历序列构造二叉树 (没思路,典型记住思路好做) 根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [ ...

  5. HDU 1041(01展开 大数)

    题意是将 1 展开成 01 ,将 0 展开成 10 ,问这样展开 n 次后序列中有多少对 0. 手写发现:0,1,1,3,5,11 ... 即 a[ i ] = a[ i -1 ] + a[ i - ...

  6. hdu 6380

    #include<bits/stdc++.h> #define in(a) scanf("%d",&a) using namespace std; struct ...

  7. [Asp.Net MVC4]验证用户登录实现

    最近我们要做一个仿sina的微博,碰巧的是我最近在学习mvc,就想用mvc技术实现这个项目. 既然是微博,那不用想也应该知道肯定要有用户登陆,但是和常规的asp.net登陆又不一样,以下是我一下午+一 ...

  8. webService的介绍与简单使用

    webService开发项目介绍: 1 Webservice:跨语言跨平台的远程调用技术.Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术. ...

  9. 自学python 5.

    1.tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "na ...

  10. 多线程Thread类的方法

    创建多个线程的第一种方法 1.定义一个Thread类的子类,比如MyThread类 2.重写Thread的run方法,设置线程任务 3.创建Mythread类的对象 4.调用方法start(),开启新 ...