hibernate框架学习第五天:数据查询、投影等
复习
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.迫切连接只包含主
作者:架构师小跟班
开发者导航: http://www.codernav.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出,以免更多的人被误导。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号