hibernate.doc 基础的介绍
001---Hibernate简介(开源O/R映射框架)1
002---第一个Hibernate示例4
003---hibernate主要接口介绍9
004---持久对象的生命周期介绍10
005---query接口初步16
006开源O/R映射框架内容回顾18
007---Hibernate基本映射标签和属性介绍19
一、映射文件的基本结构举例:19
二、<hibernate-mapping>标签:19
三、<class>标签20
四、<id>标签22
(一)、<generator>元素(主键生成策略)23
五、<property>标签24
六、完整实例:25
008多对一 关联映射 --- many-to-one29
对象模型图:29
关系模型:29
关联映射的本质:29
User实体类:29
Group实体类:30
Group实体类的映射文件:30
User实体类的映射文件:31
※<many-to-one>标签※:31
多对一 存储(先存储group(对象持久化状态后,再保存user)):31
重要属性-cascade(级联):32
多对一 加载数据32
009一对一 主键关联映射_单向(one-to-one)33
对象模型(主键关联映射-单向):33
IdCard实体类:33
Person实体类:33
关系模型:34
IdCard实体类的映射文件:34
Persion实体类的映射文件:34
导出至数据库表生成代码如下:35
※<one-to-one>标签※35
一对一 主键关联映射 存储测试35
一对一 主键关联映射 加载测试36
一对一 主键关联映射 总结:36
010一对一 主键关联映射_双向(one-to-one)37
对象模型(主键关联映射-双向):37
IdCard实体类:37
Person实体类:37
关系模型:38
IdCard实体类映射文件:38
Person实体类映射文件不变:38
导出至数据库表生成SQL语句:39
一对一 主键关联映射加载数据测试—双向:39
加载数据时,输出SQL语句:39
总结:39
需要在idcard映射文件中加入<one-to-one>标签指向hibernate,指示hibernate如何加载person(默认根据主键加载。)39
011一对一 唯一外键关联映射_单向(one-to-one)40
对象模型(主键关联映射-单向):40
关系模型:40
对象模型实体类与一对一主键关联实体类相同,没有变化。40
IdCard实体映射文件与主键关联映射文件相同:40
Person实体类映射文件:40
导出至数据库生成表SQL语句如下:41
一对一 唯一外键 关联映射存储测试:41
总结:42
012一对一 唯一外键关联映射_双向(one-to-one)42
对象模型(唯一外键关联映射-双向):42
关系模型42
IdCard实体类:42
Person实体类:43
Person实体类映射文件:43
IdCard实体类映射文件:44
总结:44
013 session_flush45
Session.flush功能:45
Session在什么情况下执行flush:45
数据库的隔离级别:并发性作用。46
Mysql查看数据库隔离级别:46
Mysql数据库修改隔离级别:46
Session.evict(user)方法:46
解决在逐出session缓存中的对象不抛出异常的方法:47
014 一对多关联映射 单向(one-to-many)48
对象模型:48
关系模型:48
多对一、一对多的区别:48
Classes实体类:48
Students实体类:49
Student映射文件:49
Classes映射文件:49
导出至数据库(hbm?ddl)生成的SQL语句:50
数据库表结构如下:50
一对多 单向存储实例:50
生成的SQL语句:51
一对多,在一的一端维护关系的缺点:51
一对多 单向数据加载:51
加载生成SQL语句:51
015 一对多关联映射 双向(one-to-many)52
学生映射文件修改后的:52
一对多 数据保存,从多的一端进行保存:52
生成SQL语句:52
关于inverse属性:53
Inverse和cascade区别:53
一对多双向关联映射总结:53
016 多对多关联映射 单向(many-to-many)54
实例场景:54
对象模型:54
关系模型:54
Role实体类:54
User实体类:55
Role映射文件:55
User映射文件:55
导出至数据库表所生成SQL语句56
数据库表及结构:56
多对多关联映射 单向数据存储:57
发出SQL语句:58
多对多关联映射 单向数据加载:58
017 多对多关联映射 双向(many-to-many)58
018 关联映射文件中<class>标签中的lazy(懒加载)属性60
Lazy(懒加载):60
Hibernate中的lazy(懒加载):60
Hibernate中lazy(懒加载)的实现:60
Lazy(懒加载)在hibernate何处使用:60
Hibernate的lazy生效期:60
<class>标签上,可以取值:true/false,(默认值为:true):60
019 关联映射文件中集合标签中的lazy(懒加载)属性61
020 <one-to-one>、<many-to-one>单端关联上的lazy(懒加载)属性64
021 继承关联映射65
继承关联映射的分类:65
对象模型:65
021-1单表继承:65
Animal实体类:65
Pig实体类:66
Bird实体类:66
数据库中表结构:67
单表继承数据存储:67
单表继承映射数据加载(指定加载子类):67
单表继承映射数据加载(指定加载父类):68
单表继承映射数据加载(指定加载父类,看能否鉴别真实对象):68
多态查询:69
采用load,通过Animal查询,将<class>标签上的lazy设置为false69
采用get,通过Animal查询,可以判断出正直的类型69
采用HQL查询,HQL是否支持多态查询70
通过HQL查询表中所有的实体对象70
021-2具体表继承:70
关系模型:71
映射文件(每个类映射成一个表):71
导出输出SQL语句:71
021-3类表继承72
关系模型:73
映射文件:73
导出输出SQL语句:73
数据库表结构如下:74
021-4三种继承关联映射的区别:74
022 component(组件)关联映射75
Component关联映射:75
User实体类:75
Contact值对象:76
User映射文件(组件映射):77
导出数据库输出SQL语句:77
数据表结构:77
组件映射数据保存:78
什么是实体类:78
023 复合主键 关联映射78
复合主键类:80
实体类:(中引用了复合主键类)80
导出数据库输出SQL语句:81
复合主键关联映射数据存储:81
数据的加载:82
024 其它 关联映射82
实例类82
Hibernate对集合的存储关系:83
集合关联映射文件实例:83
导出至数据库输出SQL语句:85
数据库表结构:87
集合映射数据存储:88
执行输出SQL语句:89
025 hibernate悲观锁、乐观锁90
025-1悲观锁:90
悲观锁的实现90
悲观锁的适用场景:90
实例:90
实体类:91
映射文件:91
悲观锁的使用91
025-2乐观锁:92
实体类:92
映射文件93
026 hibernate操作树形结构94
节点实体类:94
节点映射文件:95
测试代码:95
相应的类代码:96
027 hibernate查询语言(HQL)99
027-1 HQL简单例子99
027-2 HQL演示环境100
Classes实体类:100
Student实体类:100
Classes实体类的映射文件:101
Student实体类映射文件:101
初始化演示需要的数据:101
027-3 简单属性的查询103
01 单一属性查询103
02 多个属性查询104
03 查询一个或多个属性,要求返回实体对象104
04 使用别名查询104
027-4实体对象查询105
01 简单的实体对象查询105
02 实体对象使用别名查询105
03使用select查询实体对象105
04 HQL不支持select * from ……105
05 query.iterate查询数据105
06 query.list()和query.iterate()的区别106
07 两次query.list()106
027-5条件查询107
01 条件查询 拼字符串107
02 条件查询 点位符方式107
03 Hibernate支持方法链107
04 条件查询 参数名传递方式108
05 条件查询 包含条件in108
027-6 hibernate使用SQL中函数109
027-7 hibernate支持原生SQL查询109
027-8 外置命名查询109
027-9 查询过滤器110
1、定义过滤器参数110
3、定义过滤器在什么地方使用110
3、使用过滤器(启用)110
使用环境:111
027-10 分页查询111
027-11 对象导航查询111
027-12 连接查询112
1、内连接查询112
2、左连接查询112
3、右连接查询112
027-13 统计查询112
027-14 分组查询113
027-15 dml风格查询113
028 hibernate缓存(性能优化策略)114
028--01 hibernate一级缓存114
028--02 hibernate二级缓存115
二级缓存的配置和使用:115
二级缓存的开启:115
指定二级缓存产品提供商:115
指定哪些实体类使用二级缓存:116
应用范围118
二级缓存的管理:118
二级缓存的交互119
028--03 hibernate查询缓存120
029 hibernate抓取策略121