《精通Hibernate Java数据库持久层开发核心编程》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:黄佩虹,张冰晶编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302188865
  • 页数:550 页
图书介绍:本书详细介绍了通过Hibernate进行Java数据库持久层开发的方法与技巧。全书共分16章,内容包括Hibernate的关系映射、对象的保存、更新等,对象检索、事务处理、二级缓存、查询缓存等。

第1章 为什么使用Hibernate 1

1.1持久层 2

应用程序的分层结构 2

持久化技术 3

1.2 ORM简介 4

1.3使用JDBC编程 4

1.4使用JDBC和Hibernate的对比 7

CarCompany项目分析 7

使用JDBC实现项目与使用Hibernate实现项目 9

关联和继承问题 12

数据库表更改问题 16

1.5 Hibernate的优点 17

1.6小结 18

第2章 Hibernate入门程序 19

2.1资源下载和预备环境 19

预备知识 19

资源下载 20

环境预备 21

2.2 BasicCar项目 24

BasicCar项目描述 24

建立数据库 24

建立项目 24

2.3 POJO文件 26

2.4映射文件 27

BasicCar.hbm.xml内容 27

映射文件内容介绍 28

2.5配置文件 29

hibernate.cfg.xml内容 29

配置文件内容介绍 30

2.6测试项目 31

Test java代码 31

插入、更新、查询和删除 33

2.7小结 37

第3章 Hibernate原理解析 39

3.1 Hibernate的常用接口及包 39

Hibernate的常用接口 39

Hibernate的包 42

3.2 Hibernate体系结构和工作原理 43

Hibernate体系结构 43

Hibernate工作原理 44

3.3 Hibernate的依赖技术 46

Java反射机制、CGLIB和javassist 46

XML文件及其解析器dom4j 52

Antlr 54

3.4 Hibernate的内部实现 58

session.save()的内部实现 58

session.flush()的内部实现 61

session.load()的内部实现 65

Query(查询)的内部实现 69

3.5小结 72

第4章 对象关系映射 73

4.1 Hibernate的对象识别方法 73

Java和关系数据库的对象识别方法 74

Hibernate的对象识别方法 76

4.2映射代理主键、单个自然主键和复合自然主键 76

映射代理主键 76

映射单个自然主键 78

映射复合自然主键 78

4.3 Hibernate的映射类型 85

Hibernate内置类型 85

Hibernate集合类型和用户自定义类型 88

4.4继承关系映射 88

每个子类一个数据表 90

每个类个数据表 92

共享一个数据表 94

4.5关联关系映射 97

多对一 97

一对一 107

多对多 113

4.6小结 121

第5章 对数据的简单操作 123

5.1 Hibernate数据读写操作 123

5.2进一步理解Session 125

Session读操作的实现 126

Session写操作的实现 127

5.3 Java对象的三种状态 129

5.4对Session的插入、更新、删除、载入 131

对Session执行save操作 133

对Session执行update操作 137

对Session执行delete操作 138

对Session执行get、 load操作 139

5.5 HQL检索方式 139

Hibernate提供多种检索方式 139

HQL检索方式 139

Query接口 140

HQL基本语法 142

在HQL语句中绑定参数 148

限制查询返回的数目 152

在映射文件中定义命名HQL查询语句 152

SQL检索方式 153

5.6小结 156

第6章 Hibernate事务与并发处理 157

6.1 Hibernate事务 157

什么是事务 157

Hibernate的事务 158

使用Hibernate事务 159

Transaction接口 162

同步Session和数据库 163

6.2并发带来的问题 164

更新丢失(Lost Update) 164

脏读(Dirty read) 165

不可重复读(Unrepeatable read) 166

幻读(Phantom read) 166

6.3避免并发冲突的三种方案 167

设置数据库隔离级别 170

乐观锁 172

悲观锁 177

6.4小结 179

第7章 高级对象关系映射 181

7.1使用动态类 181

使用动态类的对象关系映射 181

使用动态类的数据存取 183

7.2使用组件<component> 185

实体和值的概念 185

组件<component> 185

动态组件<dynamic-component> 188

7.3映射值类型的集合 190

使用值类型集合的例子 191

各种集合元素 193

映射component类型集合 201

排序 205

7.4用户自定义数据类型 206

使用UserType接口的例子 206

UserType包的其他接口 211

7.5一个持久化类对应多张表 212

对象关系映射 212

数据存取 214

7.6小结 216

第8章 高级数据检索 217

8.1 QBC数据检索 217

QBC查询主要类 219

使用Expression类和Example类设置查询条件 223

使用QBC各种检索例子 226

8.2连接查询 231

连接定义 231

Hql、Criteria对连接的支持 235

使用fetch和不使用fetch的区别 239

8.3检索策略 240

什么时候载入 240

如何检索 241

类级别的延迟加载 242

关联实体的载入策略 244

关联集合的载入策略 248

batch载入策略 252

8.4小结 254

第9章 Hibernate的二级缓存和查询缓存 255

9.1二级缓存 256

Hiberbate的缓存结构 256

选择二级缓存策略 257

缓存提供者 258

9.2使用二级缓存 264

使用二级缓存的步骤 264

对类对象进行缓存 265

对集合进行缓存 268

9.3查询缓存 272

使用查询缓存 272

使用查询缓存的注意事项 275

9.4管理二级缓存 277

缓存模式 278

清除缓存对象 278

9.5 Hibernate统计机制 279

Hibernate统计机制Statistics 279

与二级缓存相关的统计信息 281

9.6小结 283

第10章 Hibernate拦截器和事件框架 285

10.1 Hibernate拦截器 285

Interceptor接口 286

使用Interceptor拦截器 289

10.2 Hibernate事件框架 300

实现自定义监听器 301

注册监听器 303

10.3小结 305

第11章 Hibernate Annotations应用 307

11.1 Hibernate Annotations简介 307

EJB介绍 308

启用元数据注释 310

JPA介绍 313

Hibernate Annotations介绍 313

11.2建立一个Hibernate Annotation项目 314

环境准备 314

在BasicCar项目中使用注释 315

11.3使用注释映射对象关系 318

映射实体和属性 318

映射类型 319

映射主键 320

继承关系映射 323

关联关系映射 326

映射组件 332

乐观锁 335

11.4使用注释映射查询 335

映射命名HQL查询 335

映射命名SQL查询 336

使用过滤器 337

11.5小结 338

第12章 Hibernate验证器 339

12.1新建一个Hibernate验证器项目 340

环境准备 340

在BasicCar项目中使用约束 341

12.2验证器框架 345

org.hibernate.validator包 345

org.hibernate.validator.event包 346

org.hibernate.validator.interpolator包 347

错误信息资源包 347

12.3内键约束 347

12.4错误信息 349

资源绑定 349

自定义错误信息 353

12.5编写自定义约束 354

12.6验证关联对象 356

12.7结合XML映射文件使用约束 358

增加回滚事务处理 358

注册验证器事件监听器 360

12.8小结 361

第13章 Hibernate Tools介绍 363

13.1 Hibernate Tools功能 363

13.2 Hibernate Tools安装 364

13.3创建Hibernate配置文件 368

13.4创建Hibernate控制台配置 371

13.5创建Hibernate逆向工程文件 373

创建逆向工程文件的步骤 373

Hibernate逆向工程文件编辑器 375

13.6使用逆向工程生成POJO类和映射文件 380

生成POJO类和映射文件的步骤 380

进一步控制逆向工程 385

13.7控制映射文件生成POJO类 390

13.8 Hibeate Tools的各个视图 392

13.9动态执行HQL语句 393

13.10小结 395

第14章 Hibernate Search 397

14.1 Lucene介绍 398

什么是Lucene 398

Lucene的基本原理 398

Lucene的技术实现 400

索引的主要类 403

搜索的主要类 404

一个简单使用Lucene的例子 404

14.2 Hibernate Search介绍 410

Hibernate Search 的优点 410

Hibernate Search的使用模式 411

Hibernate Search包 413

14.3第一个Hibernate Search项目 415

环境准备 415

BasicCar例子 415

14.4建立实体和索引的映射 422

基本映射 422

嵌入和关联实体映射 424

使用@ boost进行加权操作 432

类型转换桥Bridge 434

14.5配置 435

目录配置 435

worker配置 437

reader策略配置 437

启动自动索引 437

14.6查询 438

setCriteriaQuery()设置Criteria 438

setIndexProjection()对结果进行投影 439

setSort()排序 440

多种Query对象的使用 443

14.7小结 444

第15章 Spring和Hibernate整合 445

15.1 Spring简介 445

应用程序框架的概念 446

Spring总体框架 447

IoC控制反转和依赖注入 449

AOP面向方面编程 454

15.2结合Spring和Hibernate的例子 460

环境 461

项目代码 461

15.3主要类解析 466

HibernateTemplate类 466

HibernateDaoSupport类 469

15.4对Hibernate进行事务管理 471

Spring事务 471

编程式事务 471

声明式事务 473

15.5小结 478

第16章 使用Spring、Struts、Hibernate的实例 481

16.1项目介绍 482

项目功能 482

项目技术 485

16.2整体框架设计 488

系统的总体框架 488

系统的各个包 490

16.3 Struts在项目中的运用 491

16.4使用Spring整合项目 495

16.5业务层的实现 498

生成地图的相关类 498

移动缩放地图操作的相关类 508

查询地图操作的相关类 510

编辑地图操作的相关类 512

16.6持久层及数据库设计 515

数据库设计 515

持久层设计 517

16.7持久层的实现 519

Hibernate对空间数据类型的支持 519

使用空间数据库函数实现数据的选取 528

DAO的实现 531

xml文件 538

16.8小结 541

附录A Hibernate生成器 543

附录B Hibernate配置文件 547