Hibernate 学习教程

http://blog.csdn.net/csh624366188/article/details/7554768


第1课 课程内容. 6

第2课Hibernate UML图. 6

第3课 风格. 7

第4课 资源. 7

第5课 环境准备. 7

第6课 第一个示例HibernateHelloWorld 7

第7课 建立Annotation版本的HellWorld 9

第8课 什么是O/RMapping 11

一、     定义:. 11

二、     Hibernate的创始人:. 11

三、     Hibernate做什么:. 12

四、     Hibernate存在的原因:. 12

五、     Hibernate的优缺点:. 12

六、     Hibernate使用范围:. 12

第9课Hibernate的重点学习:Hibernate的对象关系映射. 12

一、对象---关系映射模式. 12

二、常用的O/R映射框架:. 13

第10课 模拟Hibernate原理(OR模拟) 13

一、     项目名称. 13

二、     原代码. 13

第11课Hibernate基础配置. 15

一、     提纲. 15

二、     介绍MYSQL的图形化客户端. 16

三、     Hibernate.cfg.xml:hbm2ddl.auto 16

四、     搭建日志环境并配置显示DDL语句. 16

五、     搭建Junit环境. 16

六、     ehibernate.cfg.xml : show_sql 17

七、     hibernate.cfg.xml :format_sql 17

八、     表名和类名不同,对表名进行配置. 17

九、     字段名和属性相同. 17

十、     字段名和属性名不同. 17

十一、      不需要(持久化)psersistence的字段. 18

十二、      映射日期与时间类型,指定时间精度. 18

十三、      映射枚举类型. 19

第12课 使用hibernate工具类将对象模型生成关系模型. 19

第13课ID主键生成策略. 20

一、     Xml方式. 20

<generator>元素(主键生成策略) 20

二、     annotateon方式. 21

1、AUTO默认. 21

2、IDENTITY 22

3、SEQUENCE 22

4、为Oracle指定定义的Sequence 22

5、TABLE - 使用表保存id值. 23

三、     联合主键. 24

1、xml方式. 24

2、annotation方式. 27

第14课Hibernate核心开发接口(重点) 29

一、     Configuration(AnnotationConfiguration) 29

二、     SessionFactory 29

三、     Session 29

1、    管理一个数据库的任务单元. 29

2、    save(); 29

3、    delete() 29

4、    load() 29

5、    Get() 30

6、    load()与get()区别. 31

7、    update() 31

8、    saveOrUpdate() 32

9、    clear() 32

10、     flush() 33

11、     evict() 33

第15课 持久化对象的三种状态. 35

一、     瞬时对象(TransientObject):. 35

二、     持久化对象(PersistentObject):. 35

三、     离线对象(DetachedObject):. 35

四、     三种状态的区分:. 35

五、     总结:. 35

第16课 关系映射(重点) 36

一、     一对一 关联映射. 36

(一)     唯一外键关联-单向(unilateralism) 37

(二)     唯一外键关联-双向. 40

(三)     主键关联-单向(不重要) 41

(四)     主键关联-双向(不重要) 44

(五)     联合主键关联(Annotation方式) 44

二、     component(组件)关联映射. 45

(一)     Component关联映射:. 45

(二)     User实体类:. 45

(三)     Contact值对象:. 46

(四)     xml--User映射文件(组件映射):. 46

(五)     annotateon注解. 46

(六)     导出数据库输出SQL语句:. 47

(七)     数据表结构:. 47

(八)     组件映射数据保存:. 47

三、     多对一– 单向. 48

(一)     对象模型图:. 48

(二)     关系模型:. 48

(三)     关联映射的本质:. 48

(四)     实体类. 48

(五)     xml方式:映射文件:. 49

(六)     annotation 50

(七)     多对一 存储(先存储group(对象持久化状态后,再保存user)):. 50

(八)     重要属性-cascade(级联):. 51

(九)     多对一  加载数据. 51

四、     一对多- 单向. 51

(一)     对象模型:. 52

(二)     关系模型:. 52

(三)     多对一、一对多的区别:. 52

(四)     实体类. 52

(五)     xml方式:映射. 52

(六)     annotateon注解. 53

(七)     导出至数据库(hbmàddl)生成的SQL语句:. 53

(八)     一对多 单向存储实例:. 53

(九)     生成的SQL语句:. 54

(十)     一对多,在一的一端维护关系的缺点:. 54

(十一)    一对多 单向数据加载:. 54

(十二)    加载生成SQL语句:. 54

五、     一对多- 双向. 54

(一)     xml方式:映射. 55

(二)     annotateon方式注解. 55

(三)     数据保存:. 56

(四)     关于inverse属性:. 56

(五)     Inverse和cascade区别:. 56

(六)     一对多双向关联映射总结:. 57

六、     多对多- 单向. 57

(一)     实例场景:. 57

(二)     对象模型:. 57

(三)     关系模型:. 57

(四)     实体类. 57

(五)     xml方式:映射. 58

(六)     annotation注解方式. 58

(七)     生成SQL语句. 59

(八)     数据库表及结构:. 59

(九)     多对多关联映射 单向数据存储:. 59

(十)     多对多关联映射 单向数据加载:. 61

七、     多对多- 双向. 61

(一)     xml方式:映射. 61

(二)     annotation注解方式. 62

八、     关联关系中的CRUD_Cascade_Fetch 63

九、     集合映射. 63

十、     继承关联映射. 64

(一)     继承关联映射的分类:. 64

(二)     对象模型:. 64

(三)     单表继承SINGLE_TABLE:. 64

(四)     具体表继承JOINED:. 70

(五)     类表继承TABLE_PER_CLASS 72

(六)     三种继承关联映射的区别:. 74

第17课hibernate树形结构(重点) 75

一、     节点实体类:. 75

二、     xml方式:映射文件:. 75

三、     annotation注解. 76

四、     测试代码:. 76

五、     相应的类代码:. 76

第18课 作业-学生、课程、分数的映射关系. 79

一、     设计. 79

二、     代码:. 79

三、     注意. 80

第19课Hibernate查询(Query Language) 80

一、     Hibernate可以使用的查询语言. 80

二、     实例一. 80

三、     实体一测试代码:. 82

四、     实例二. 86

五、     实例二测试代码. 87

第20课Query by Criteria(QBC) 89

一、     实体代码:. 89

二、     Restrictions用法. 90

三、     工具类Order提供设置排序方式. 91

四、     工具类Projections提供对查询结果进行统计与分组操作. 91

五、     QBC分页查询. 92

六、     QBC复合查询. 92

七、     QBC离线查询. 92

第21课Query By Example(QBE) 92

一、     实例代码. 92

第22课Query.list与query.iterate(不太重要) 93

一、     query.iterate查询数据. 93

二、     query.list()和query.iterate()的区别. 94

三、     两次query.list() 94

第23课 性能优化策略. 95

第24课hibernate缓存. 95

一、     Session级缓存(一级缓存) 95

二、     二级缓存. 95

1、    二级缓存的配置和使用:. 96

2、    二级缓存的开启:. 96

3、    指定二级缓存产品提供商:. 96

4、    使用二级缓存. 97

5、    应用范围. 99

6、    二级缓存的管理:. 99

7、    二级缓存的交互. 100

8、    总结. 102

三、     查询缓存. 102

四、     缓存算法. 103

第25课 事务并发处理. 104

一、     数据库的隔离级别:并发性作用。. 104

1、    Mysql查看数据库隔离级别:. 104

2、    Mysql数据库修改隔离级别:. 104

二、     事务概念(ACID) 104

三、     事务并发时可能出现问题. 104

第26课hibernate悲观锁、乐观锁. 105

一、     悲观锁. 105

1、    悲观锁的实现. 105

2、    悲观锁的适用场景:. 105

3、    实例:. 105

4、    悲观锁的使用. 106

5、    执行输出SQL语句:. 106

二、     乐观锁. 107


第1课 课程内容

1、  HelloWorld

a)        Xml

b)        Annotction

2、  Hibernate原理模拟-什么是O/RMapping以及为什么要有O/RMapping

3、  常风的O/R框架

4、  Hibernate基础配置

5、  Hibernate核心接口介绍

6、  对象的三种状态

7、  ID生成策略

8、  关系映射

9、  Hibernate查询(HQL)

10、    在Struts基础上继续完美BBS2009

11、    性能优化

12、    补充话题


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值