编辑推荐
凝聚Java魅力,成就开发专家 看清Java万花筒的本质,从复杂的表象中寻找普遍的规律,深刻理解Java的核心思想 本书在第1版的基础上,并结合作者多年经验,将更新的理论知识,精心细致地介绍新技术应用。
内容简介
《精通Hibernate:Java对象持久化技术详解(第2版)》在一版基础上,理论内容更新,更加注重理论与实践的结合,有大量具有典型性和实用价值的Hibernate应用实例。全书将详细介绍运用目前成熟的Hibernate 3.3版本进行Java对象持久化的技术,既能掌握用Hibernate工具对这两种模型进行映射的技术,又能获得设计与开发Java对象模型和关系数据模型的经验。光盘包括《精通Hibernate:Java对象持久化技术详解(第2版)》范例源程序、涉及软件的新版本的安装程序,以及配套的语音讲座。
《精通Hibernate:Java对象持久化技术详解(第2版)》无论对于Java开发的新手还是行家来说,都是精通Java对象持久化技术的必备实用手册。
作者简介
孙卫琴:知名IT作家的,Java系列畅销书的作者。1997年毕业于上海交通大学,随后从事基于Java的软件开发工作,还从事Java方面的培训和咨询工作,2002年开始Java技术领域的创作,其作者深受读者欢迎。
代表作有:
《精通Hibernate:Java对象持久化技术详解(第2版)》2010-1-13
《Tomcat与Java Web开发技术详解(第2版)》2009
《Java网络编程精解》2007
《Java面向对象编程》2006
《精通Hibernate:Java对象持久化技术详解》2005
《精通Struts:基于MVC的Java Web设计与开发》2004
《Tomcat与Java Web开发技术详解》2004
《Java 2认证考试指南与试题解析》2002
内页插图
目录
第1章 Java应用分层架构及软件模型 1
1.1 应用程序的分层体系结构 1
1.1.1 区分物理层和逻辑层 2
1.1.2 软件层的特征 3
1.1.3 软件分层的优点 4
1.1.4 软件分层的缺点 4
1.1.5 Java应用的持久化层 5
1.2 软件的模型 6
1.2.1 概念模型 7
1.2.2 关系数据模型 8
1.2.3 域模型 10
1.2.4 域对象 10
1.2.5 域对象之间的关系 11
1.2.6 域对象的持久化概念 17
1.3 小结 19
1.4 思考题 19
第2章 Java对象持久化技术概述 21
2.1 直接通过JDBC API来持久化实体域对象 21
2.2 ORM简介 27
2.2.1 对象-关系映射的概念 29
2.2.2 ORM中间件的基本使用方法 31
2.2.3 常用的ORM中间件 33
2.3 实体域对象的其他持久化模式 34
2.3.1 主动域对象模式 35
2.3.2 JDO模式 37
2.3.3 CMP模式 37
2.4 Hibernate API简介 38
2.4.1 Hibernate的核心接口 39
2.4.2 事件处理接口 41
2.4.3 Hibernate映射类型接口 41
2.4.4 可供扩展的接口 42
2.5 小结 43
2.6 思考题 45
第3章 第一个Hibernate应用 47
3.1 创建Hibernate的配置文件 47
3.2 创建持久化类 48
3.3 创建数据库Schema 51
3.4 创建对象-关系映射文件 52
3.4.1 映射文件的文档类型定义(DTD) 52
3.4.2 把Customer持久化类映射到CUSTOMERS表 54
3.5 通过Hibernate API操纵数据库 58
3.5.1 Hibernate的初始化 61
3.5.2 访问Hibernate的Session接口 63
3.6 运行helloapp应用 67
3.6.1 创建运行本书范例的系统环境 67
3.6.2 创建helloapp应用的目录结构 72
3.6.3 把helloapp应用作为独立应用程序运行 73
3.6.4 把helloapp应用作为Java Web应用运行 77
3.7 小结 78
3.8 思考题 80
第4章 hbm2java和hbm2ddl工具 83
4.1 创建对象-关系映射文件 83
4.1.1 定制持久化类 85
4.1.2 定制数据库表 88
4.2 建立项目的目录结构 90
4.3 运行hbm2java工具 93
4.4 运行hbm2ddl工具 94
4.5 使用XML格式的配置文件 96
4.6 小结 97
4.7 思考题 98
第5章 对象-关系映射基础 101
5.1 持久化类的属性及访问方法 101
5.1.1 基本类型属性和包装类型属性 102
5.1.2 Hibernate访问持久化类属性的策略 104
5.1.3 在持久化类的访问方法中加入程序逻辑 104
5.1.4 设置派生属性 107
5.1.5 控制insert和update语句 108
5.2 处理SQL引用标识符 109
5.3 创建命名策略 110
5.4 设置数据库Schema 112
5.5 设置类的包名 113
5.6 运行本章的范例程序 114
5.7 小结 120
5.8 思考题 121
第6章 映射对象标识符 123
6.1 关系数据库按主键区分不同的记录 123
6.1.1 把主键定义为自动增长标识符类型 123
6.1.2 从序列(Sequence)中获取自动增长的标识符 124
6.2 Java语言按内存地址区分不同的对象 125
6.3 Hibernate用对象标识符(OID)来区分对象 126
6.4 Hibernate的内置标识符生成器的用法 128
6.4.1 increment标识符生成器 131
6.4.2 identity标识符生成器 133
6.4.3 sequence标识符生成器 134
6.4.4 hilo标识符生成器 135
6.4.5 native标识符生成器 137
6.5 映射自然主键 138
6.5.1 映射单个自然主键 138
6.5.2 映射复合自然主键 140
6.6 小结 143
6.7 思考题 144
第7章 映射一对多关联关系 147
7.1 建立多对一的单向关联关系 148
7.1.1 元素的not-null属性 153
7.1.2 级联保存和更新 155
7.2 映射一对多双向关联关系 156
7.2.1 元素的inverse属性 161
7.2.2 级联删除 163
7.2.3 父子关系 164
7.3 映射一对多双向自身关联关系 165
7.4 改进持久化类 171
7.5 小结 175
7.6 思考题 176
第8章 通过Hibernate操纵对象(上) 179
8.1 Java对象在JVM中的生命周期 179
8.2 理解Session的缓存 181
8.2.1 Session的缓存的作用 182
8.2.2 脏检查及清理缓存的机制 184
8.3 Java对象在Hibernate持久化层的状态 187
8.3.1 临时对象的特征 188
8.3.2 持久化对象的特征 189
8.3.3 被删除对象的特征 190
8.3.4 游离对象的特征 191
8.4 Session接口的详细用法 191
8.4.1 Session的save()和persist()方法 191
8.4.2 Session的load()和get()方法 194
8.4.3 Session的update()方法 195
8.4.4 Session的saveOrUpdate()方法 197
8.4.5 Session的merge()方法 198
8.4.6 Session的delete()方法 200
8.4.7 Session的replicate()方法 201
8.5 级联操纵对象图 202
8.5.1 级联保存临时对象 206
8.5.2 更新持久化对象 207
8.5.3 持久化临时对象 207
8.5.4 更新游离对象 209
8.5.5 遍历对象图 210
8.6 小结 211
8.7 思考题 211
第9章 通过Hibernate操纵对象(下) 215
9.1 与触发器协同工作 215
9.2 利用拦截器(Interceptor)生成审计日志 217
9.3 Hibernate的事件处理机制 224
9.4 批量处理数据 226
9.4.1 通过Session来进行批量操作 227
9.4.2 通过StatelessSession来进行批量操作 229
9.4.3 通过HQL来进行批量操作 230
9.4.4 直接通过JDBC API来进行批量操作 232
9.5 使用元数据 233
9.6 通过Hibernate调用存储过程 234
9.7 小结 234
9.8 思考题 235
第10章 映射组成关系 237
10.1 建立精粒度对象模型 238
10.2 建立粗粒度关系数据模型 239
10.3 映射组成关系 240
10.3.1 区分值(Value)类型和实体(Entity)类型 242
10.3.2 在应用程序中访问具有组成关系的持久化类 244
10.4 映射复合组成关系 247
10.5 小结 248
10.6 思考题 249
第11章 Hibernate的映射类型 251
11.1 Hibernate的内置映射类型 251
11.1.1 Java基本类型的Hibernate映射类型 251
11.1.2 Java时间和日期类型的Hibernate映射类型 252
11.1.3 Java大对象类型的Hibernate映射类型 253
11.1.4 JDK自带的个别Java类的Hibernate映射类型 253
11.1.5 使用Hibernate内置映射类型 254
11.2 客户化映射类型 256
11.2.1 用客户化映射类型取代Hibernate组件 260
11.2.2 用UserType映射枚举类型 263
11.2.3 实现CompositeUserType接口 266
11.2.4 运行本节范例程序 271
11.3 操纵Blob和Clob类型数据 279
11.4 小结 284
11.5 思考题 284
第12章 映射继承关系 287
12.1 继承关系树的每个具体类对应一个表 288
12.1.1 创建映射文件 289
12.1.2 操纵持久化对象 290
12.2 继承关系树的根类对应一个表 293
12.2.1 创建映射文件 294
12.2.2 操纵持久化对象 296
12.3 继承关系树的每个类对应一个表 297
12.3.1 创建映射文件 298
12.3.2 操纵持久化对象 300
12.4 选择继承关系的映射方式 302
12.5 映射多对一多态关联 305
12.6 小结 308
12.7 思考题 309
第13章 Java集合类 311
13.1 Set(集) 312
13.1.1 Set的一般用法 312
13.1.2 HashSet类 313
13.1.3 TreeSet类 315
13.1.4 向Set中加入持久化类的对象 319
13.2 List(列表) 320
13.3 Map(映射) 321
13.4 小结 325
13.5 思考题 326
第14章 映射值类型集合 327
14.1 映射Set(集) 327
14.2 映射Bag(包) 331
14.3 映射List(列表) 334
14.4 映射Map 337
14.5 对集合排序 339
14.5.1 在数据库中对集合排序 340
14.5.2 在内存中对集合排序 341
14.6 映射组件类型集合 345
14.7 小结 350
14.8 思考题 351
第15章 映射实体关联关系 353
15.1 映射一对一关联 353
15.1.1 按照外键映射 354
15.1.2 按照主键映射 358
15.2 映射单向多对多关联 361
15.3 映射双向多对多关联关系 365
15.3.1 关联两端使用元素 366
15.3.2 在inverse端使用元素 367
15.3.3 使用组件类集合 371
15.3.4 把多对多关联分解为两个一对多关联 376
15.4 小结 378
15.5 思考题 379
第16章 Hibernate的检索策略 381
16.1 Hibernate的检索策略简介 383
16.2 类级别的检索策略 386
16.2.1 立即检索 387
16.2.2 延迟检索 387
16.3 一对多和多对多关联的检索策略 390
16.3.1 立即检索(lazy属性为“false”) 392
16.3.2 延迟检索(lazy属性为默认值“true”) 392
16.3.3 增强延迟检索(lazy属性为“extra”) 393
16.3.4 批量延迟检索和批量立即检索(使用batch-size属性) 393
16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”) 396
16.3.6 迫切左外连接检索(fetch属性为“join”) 397
16.4 多对一和一对一关联的检索策略 398
16.4.1 迫切左外连接检索(fetch属性为“join”) 398
16.4.2 延迟检索(lazy属性为默认值“proxy”) 400
16.4.3 无代理延迟检索(lazy属性为“no-proxy”) 401
16.4.4 立即检索(lazy属性为“false”) 401
16.4.5 批量延迟检索和批量立即检索(使用batch-size属性) 402
16.5 控制迫切左外连接检索的深度 405
16.6 在应用程序中显式指定迫切左外连接检索策略 408
16.7 属性级别的检索策略 408
16.8 小结 409
16.9 思考题 411
第17章 Hibernate的检索方式(上) 413
17.1 Hibernate的检索方式简介 413
17.1.1 HQL检索方式 416
17.1.2 QBC检索方式 417
17.1.3 本地SQL检索方式 419
17.1.4 关于本章范例程序 420
17.1.5 使用别名 421
17.1.6 多态查询 421
17.1.7 对查询结果排序 422
17.1.8 分页查询 423
17.1.9 检索单个对象(uniqueResult()方法) 424
17.1.10 按主键逐个处理查询结果(iterate()方法) 425
17.1.11 可滚动的结果集 426
17.1.12 在HQL查询语句中绑定参数 428
17.1.13 设置查询附属事项 433
17.1.14 在映射文件中定义命名查询语句 436
17.1.15 在HQL查询语句中调用函数 438
17.2 设定查询条件 439
17.2.1 比较运算 440
17.2.2 范围运算 441
17.2.3 字符串模式匹配 442
17.2.4 逻辑运算 443
17.2.5 集合运算 444
17.3 小结 445
17.4 思考题 446
第18章 Hibernate的检索方式(下) 449
18.1 连接查询 449
18.1.1 默认情况下关联级别的运行时检索策略 450
18.1.2 迫切左外连接 451
18.1.3 左外连接 453
18.1.4 内连接 457
18.1.5 迫切内连接 461
18.1.6 隐式内连接 463
18.1.7 右外连接 464
18.1.8 使用SQL风格的交叉连接和隐式内连接 466
18.1.9 关联级别运行时的检索策略 467
18.2 投影查询 468
18.3 报表查询 471
18.3.1 使用聚集函数 471
18.3.2 分组查询 472
18.3.3 优化报表查询的性能 475
18.4 高级查询技巧 475
18.4.1 动态查询 476
18.4.2 集合过滤 478
18.4.3 子查询 480
18.4.4 本地SQL查询 482
18.4.5 查询结果转换器 484
18.5 查询性能优化 486
18.5.1 iterate()方法 486
18.5.2 查询缓存 487
18.6 小结 488
18.7 思考题 489
第19章 Hibernate
JAVA开发专家·精通Hibernate:Java对象持久化技术详解(第2版)(附光盘1张) 下载 mobi epub pdf txt 电子书 格式
JAVA开发专家·精通Hibernate:Java对象持久化技术详解(第2版)(附光盘1张) 下载 mobi pdf epub txt 电子书 格式 2024
JAVA开发专家·精通Hibernate:Java对象持久化技术详解(第2版)(附光盘1张) 下载 mobi epub pdf 电子书
JAVA开发专家·精通Hibernate:Java对象持久化技术详解(第2版)(附光盘1张) mobi epub pdf txt 电子书 格式下载 2024