精通Hibernate 3.0:Java数据库持久层开发实践

精通Hibernate 3.0:Java数据库持久层开发实践
作 者: 付京周
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: Hibernate
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《精通Hibernate 3.0:Java数据库持久层开发实践》作者简介

内容简介

《精通Hibernate3.0:Java数据库持久层开发实践(附光盘)》分为两部分,共15章。第一部分通过具体的实例,由浅入深地讲解了Hibernate的基本配置、主键、HQL检索方式、映射、关联关系、缓存、事务和常见的工具等知识点。第二部分通过Hibernate在具体的项目中的应用,介绍了流行框架技术与Hibernate的整合应用。在最后一章还特别讲解了非常有发展潜力的轻量级的Portal技术。在《精通Hibernate3.0:Java数据库持久层开发实践(附光盘)》的附录中还给出了学习Hibernate的常见问题,可以帮助初学者少走弯路。《精通Hibernate3.0:Java数据库持久层开发实践(附光盘)》适合初、中级Java程序员阅读,同时也可作为高校和社会培训机构的实训教材。

图书目录

上篇:Hibernate开发详解

第1章 Hibernate的起步 3

1.1 Hibernate开发环境 3

1.1.1 JDK的下载安装 3

1.1.2 Tomcat的下载安装 5

1.1.3 MySQL的下载安装 9

1.1.4 Eclipse的下载安装 17

1.1.5 Hibernate的下载与配置 20

1.2 运行第一个Hibernate程序 20

1.2.1 新建工程 20

1.2.2 配置构建路径 21

1.2.3 创建MySQL数据库 21

1.2.4 编写类文件 22

1.2.5 编写对象关系映射文件 23

1.2.6 编写配置文件 24

1.2.7 编写运行测试类 25

1.3 总结 26

第2章 JDBC基本操作 27

2.1 建立和配置连接 27

2.2 JDBC接口的基本介绍 29

2.3 JDBC各种操作的实现 29

2.3.1 SQL语句执行接口Statement 30

2.3.2 SQL语句预编译接口PreparedStatement 31

2.3.3 结果集操作接口ResultSet 32

2.3.4 元数据操作接口ResultSetMetaData 34

2.4 总结 36

第3章 Java的反射机制 37

3.1 Java反射机制摘要及接口简介 37

3.1.1 反射机制摘要 37

3.1.2 反射机制的接口简介 37

3.2 实例解说Java反射机制 38

3.2.1 获取一个Class对象 38

3.2.2 获取类名称 40

3.2.3 检索修饰符 41

3.2.4 检索父类 43

3.2.5 检索指定类实现的接口 44

3.2.6 检索指定类所有的域成员 46

3.2.7 检索指定类的构造函数 47

3.2.8 检索方法 48

3.3 总结 50

第4章 Hibernate的对象关系映射的基本操作 51

4.1 Hibernate基础配置 51

4.1.1 Hibernate配置简介 51

4.1.2 高级配置选项 54

4.1.3 各种数据库的方言 56

4.1.4 配置连接池 60

4.1.5 Configuration的使用 61

4.1.6 SessionFactory的使用 64

4.2 Session接口的使用方法 64

4.2.1 Session的API简介 64

4.2.2 Session的使用 67

4.3 Hibernate映射的基本操作 69

4.3.1 映射文件说明 69

4.3.2 Hibernate映射类型 70

4.3.3 实体关系映射文件的配置 71

4.3.4 主键的生成方式 73

4.4 Hibernate对象关系映射实例:工作日志系统 74

4.4.1 JobLog整体思路 74

4.4.2 数据库的建立与设置 74

4.4.3 创建持久化类contents 75

4.4.4 创建对象关系映射文件Contents.hbm.xml 76

4.4.5 编写JobLogSessionFactory类 77

4.4.6 写日志模块的编码 78

4.4.7 浏览日志模块的编码 81

4.4.8 查询日志模块的编码 88

4.4.9 JobLog部署前的配置 92

4.4.10 目录结构 94

4.4.11 部署JobLog为Web应用程序运行 95

4.5 MyEclipse中的对象关系映射操作实例 95

4.5.1 MyEclipse的安装 95

4.5.2 利用MyEclipse进行Hibernate项目的开发 97

4.6 中文编码问题的原理及解决方案 110

4.6.1 基本概念 110

4.6.2 中文Windows操作系统内文件的编码方式 110

4.6.3 Java中的编码 110

4.6.4 JSP/Servlet中的相关编码 111

4.6.5 JSP页面的中文问题的解决方案 112

4.6.6 Servlet的中文问题的解决方案 115

4.6.7 数据库MySQL的中文问题的解决方案 116

4.7 总结 117

第5章 Hibernate的主键(标识符) 119

5.1 Hibernate内置主键概述 119

5.1.1 主键(PK)的定义 119

5.1.2 外键(FK)的定义 121

5.1.3 代理主键的定义 121

5.1.4 对象标识符 122

5.1.5 对象标识符举例 123

5.1.6 Hibernate主键详解:准备工作 126

5.1.7 Hibernate主键详解:Assigned 127

5.1.8 Hibernate主键详解:Hilo 129

5.1.9 Hibernate主键详解:Seqhilo 134

5.1.10 Hibernate主键详解:Increment 134

5.1.11 Hibernate主键详解:Identity 138

5.1.12 Hibernate主键详解:Sequence 141

5.1.13 Hibernate主键详解:Native 144

5.1.14 Hibernate主键详解:UUID 146

5.1.15 Hibernate主键详解:Foreign 149

5.1.16 Hibernate主键详解:GUID 149

5.2 Hibernate映射自然主键简介 149

5.2.1 自然主键介绍 149

5.2.2 映射自然主键 150

5.2.3 映射复合自然主键 153

5.3 总结 160

第6章 Hibernate检索方式 163

6.1 HQL基础 163

6.1.1 默认数据库表和数据 163

6.1.2 检索类的所有对象 165

6.1.3 检索类的某几个属性 166

6.1.4 指定别名 167

6.1.5 where条件子句 167

6.1.6 使用distinct过滤掉重复值 167

6.1.7 删除对象 168

6.1.8 更新对象值 169

6.1.9 查询计算属性值 169

6.1.10 使用函数 169

6.1.11 between...and...和not between... and...确定查询范围 169

6.1.12 in和not in确定查询集合 170

6.1.13 like进行模糊查询 170

6.1.14 and逻辑与 171

6.1.15 or逻辑或 171

6.1.16 order by对结果进行排序 171

6.1.17 group by对记录进行分组 172

6.1.18 having关键字 172

6.1.19 聚集函数 173

6.2 HQL进阶 174

6.2.1 查询类及其所有继承的类的实例 174

6.2.2 限制每次查询的返回对象数 174

6.2.3 绑定参数 176

6.2.4 在映射文件配置HQL语句 177

6.3 HQL的嵌套子查询 177

6.3.1 嵌套子查询的概念 177

6.3.2 带有IN谓词的子查询 178

6.3.3 比较子查询 178

6.3.4 带有ANY或ALL的子查询 178

6.4 HQL的多表查询 179

6.4.1 表之间的关联关系 179

6.4.2 表中的数据 180

6.4.3 修改持久化类 180

6.4.4 在映射文件中加入关联信息 181

6.4.5 左外连接 183

6.4.6 左外抓取连接 185

6.4.7 右外连接 186

6.4.8 内连接 186

6.4.9 抓取内连接 186

6.5 QBC检索方式 187

6.5.1 一个简单的QBC查询 187

6.5.2 指定别名 189

6.5.3 QBC条件查询:查询所在籍贯为空的学生 189

6.5.4 QBC条件查询:查询年龄在22到23岁的学生 190

6.5.5 QBC条件查询:Expression.between()确定查询范围 192

6.5.6 QBC条件查询:Expression.in()确定查询集合 192

6.5.7 QBC条件查询:Expression.like()进行模糊查询 193

6.5.8 QBC条件查询:Expression.and()逻辑与 193

6.5.9 QBC条件查询:Expression.or()逻辑或 193

6.5.10 QBC条件查询:addOrder()对结果进行排序 194

6.5.11 QBC条件查询:对HQL和QBC常用的条件查询作了对比 194

6.6 SQL检索方式 195

6.6.1 SQL检索时用到的数据 195

6.6.2 使用SQLQuery查询:检索Student表中的所有学生 198

6.6.3 使用SQLQuery查询:使用别名查询student表中的所有学生 199

6.6.4 使用SQLQuery查询:使用别名选择个别列查询 200

6.6.5 使用SQLQuery查询:关联查询学生选课信息 202

6.6.6 命名SQL查询 207

6.6.7 使用存储过程 209

6.7 总结 213

第7章 集合映射 215

7.1 映射Set 215

7.1.1 HashSet的使用 215

7.1.2 LinkedHashSet的使用 216

7.1.3 TreeSet的使用 217

7.1.4 Set的映射 218

7.2 映射List 222

7.2.1 ArrayList的使用 222

7.2.2 LinkedList的使用 223

7.2.3 List的映射 224

7.3 映射Bag 230

7.3.1 使用 bag 标签进行映射 230

7.3.2 使用 idbag 标签进行映射 234

7.4 映射Map 239

7.4.1 HashMap的使用 240

7.4.2 LinkedHashMap的使用 241

7.4.3 TreeMap的使用 242

7.4.4 Map的映射 244

7.5 总结 249

第8章 Hibernate的映射关联关系 251

8.1 映射多对一和一对一单向关联 251

8.1.1 配置多对一单向关联 251

8.1.2 测试多对一单向关联的性能 254

8.2 映射一对多单向关联 258

8.2.1 配置一对多单向关联 258

8.2.2 测试一对多单向关联的性能 261

8.3 映射一对多双向关联 265

8.3.1 配置一对多双向关联 265

8.3.2 测试一对多双向关联的性能 268

8.4 映射多对多单向关联 271

8.4.1 配置多对多双向关联 271

8.4.2 测试多对多双向关联的性能 274

8.5 映射多对多双向关联 277

8.5.1 配置映射多对多双向关联 277

8.5.2 多对多双向关联的性能测试 280

8.6 一对多双向关联表示多对多双向关联 281

8.7 总结 285

第9章 Hibernate事务及缓存管理 287

9.1 事务的概念 287

9.1.1 事务的概念 287

9.1.2 显式事务和隐式事务 288

9.1.3 事务的原子性、一致性、隔离性和持续性 289

9.1.4 在Hibernate中使用事务 289

9.2 并发控制 290

9.2.1 4个并发问题 290

9.2.2 事务隔离 294

9.2.3 Hibernate中设置事务隔离级别 296

9.3 SQL Server中的锁简介 296

9.3.1 SQL Server中锁的基本原理 296

9.3.2 SQL Server中锁的不同粒度 296

9.3.3 锁升级 297

9.3.4 SQL Server中锁的6种模式 298

9.3.5 SQL Server中死锁的原理及减少死锁的方法 299

9.4 悲观锁和乐观锁 301

9.4.1 Hibernate中几种锁定模式 301

9.4.2 悲观锁 302

9.4.3 乐观锁 304

9.5 Hibernate中的缓存 307

9.5.1 理解缓存的概念 307

9.5.2 Hibernate中的两级缓存结构 308

9.5.3 Hibernate中的第一级缓存的管理 308

9.6 Hibernate中的第二级缓存 309

9.6.1 使用EhCache配置第二级缓存 309

9.6.2 使用EhCache 310

9.7 总结 312

第10章 Hibernate工具的使用 313

10.1 常用工具的介绍 313

10.1.1 MyEclipse插件 313

10.1.2 HibernateSynchronizer插件 314

10.1.3 HibernateTools插件 314

10.1.4 如何合理、高效地使用这些工具 314

10.2 使用HibernateSynchronizer 314

10.2.1 HibernateSynchronizer的安装 314

10.2.2 使用向导创建Hibernate配置文件 316

10.2.3 使用向导创建Hibernate对象关系映射文件 318

10.2.4 生成持久化类 324

10.3 HibernateTools插件 328

10.3.1 HibernateTools的安装 328

10.3.2 创建Hibernate配置文件 330

10.3.3 创建反向工程文件 333

10.3.4 生成hbm文件和持久化类 334

10.3.5 Hibernate映射文件和配置文件编辑器 336

10.3.6 反向工程配置文件编辑器 338

10.3.7 Hibernate控制台视图 340

10.4 总结 344

下篇:J2EE应用开发

第11章 Hibernate与Spring+DWR的集成 347

11.1 Spring简介与Web服务规范 347

11.1.1 Spring简介 347

11.1.2 Java Web应用服务的结构规范 347

11.2 Spring的基本配置 348

11.2.1 Spring基本配置所需的文件 348

11.2.2 Spring的MVC配置 349

11.2.3 Spring的中web.xml的整体配置 352

11.3 Spring与DWR的集成 355

11.3.1 DWR在应用服务器中的集成 355

11.3.2 配置DWR自己本身的配置文件 356

11.3.3 DWR的测试及生成的工具方法 358

11.4 Hibernate的集成 361

11.4.1 Hibernate在Spring中的基本集成配置 361

11.4.2 Hibernate 的DAO操作类 364

11.4.3 单个DAO的实现 366

11.4.4 Spring关于Hibernate数据源、事务和事务代理 370

11.5 Afuer项目组织权限模型 371

11.5.1 数据库的基本表设计 371

11.5.2 数据库的关联表设计及其实现策略 373

11.6 Afuer项目使用标签简介 377

11.6.1 加载标签(又称Loading条) 377

11.6.2 Tab标签 384

11.6.3 JSTL标签 389

11.7 总结 391

第12章 Hibernate与Struts的整合 393

12.1 Struts简介 393

12.1.1 Struts的应用主配置文件的相关介绍 393

12.1.2 Struts的应用配置文件的相关实现 394

12.1.3 Struts页面显示的标签文件和Struts的运行组件 399

12.1.4 Struts配置简要介绍 399

12.2 常用Struts标签的介绍 402

12.2.1  bean 组件介绍 402

12.2.2  html 组件介绍 404

12.2.3  logic 组件介绍 405

12.3 Struts与Hibernate集成 406

12.3.1 建立Hibernate的配置文件和相应的映射文件 406

12.3.2 编写工厂类方法 409

12.4 Struts与Hibernate的分页设计 410

12.4.1 建立存储分页信息对象 411

12.4.2 封装代码实现类 412

12.5 总结 414

第13章 Hibernate与Ant的结合应用 415

13.1 Ant基本的语法和使用 415

13.1.1 Ant的安装 415

13.1.2 Ant的基本语法介绍 415

13.1.3 Ant的使用 417

13.1.4 ANT在生成Hibernate应用程序中的使用 418

13.2 Hibernate使用Ant生成数据库表 425

13.2.1 建立Hibernate属性文件 425

13.2.2 创建POJO和映射文件 425

13.2.3 建立Ant的编译文件 427

13.2.4 运行配置文件 427

13.3 Ant与XDoclet协同作战 428

13.3.1 XDoclet说明 428

13.3.2 通过Ant和XDoclet生成Hibernate映射文件 428

13.4 总结 432

第14章 Hibernate在Spring+WebWork2中的应用——AppFuse 433

14.1 AppFuse项目简介与项目的安装 433

14.1.1 AppFuse项目简介 433

14.1.2 安装AppFuse项目 433

14.2 AppFuse技术应用简介 434

14.2.1 AppFuse的生成代码工具 434

14.2.2 AppFuse的类包简介 437

14.2.3 AppFuse的权限控制 439

14.2.4 AppFuse缓存设置 440

14.2.5 AppFuse的JavaScript简介 442

14.3 AppFuse的技术流程及功能演示 448

14.3.1 AppFuse的工作流程 448

14.3.2 AppFuse的功能演示 457

14.4 Spring与WebWork2的集成 459

14.4.1 WebWork2简介 459

14.4.2 在Spring中配置WebWork2 459

14.5 Hibernate在框架中的应用 471

14.5.1 数据库表的分析 471

14.5.2 Spring中配置Hibernate 472

14.5.3 DAO类的实现 474

14.5.4 工厂类及Service类的实现 476

14.6 如何应用AppFuse进行开发 482

14.6.1 创建Hibernate对象 482

14.6.2 添加映射文件到配置文件 482

14.6.3 添加DAO类和工厂类 483

14.6.4 添加Action类、配置及JSP文件以实现应用 483

14.7 总结 484

第15章 Hibernate在Portal中的应用 485

15.1 Portal简介 485

15.1.1 Portal的概念简介 485

15.1.2 Portal的特性 486

15.2 Light Portal客户端简介 486

15.2.1 页面的访问与样式的定制 486

15.2.2 Light Portal客户端的功能和权限 488

15.3 Light Portal概念和特性 489

15.3.1 Light Portal的概念 489

15.3.2 Light Portal的特性 489

15.4 Light Portal的剖析 490

15.4.1 剖析Light Portal使用的技术 491

15.4.2 剖析Light Portal结构工作流程 491

15.4.3 Light Portal的安全配置 496

15.4.4 Light Portal的面板配置 498

15.4.5 Light Portal的类对象 500

15.4.6 Light Portal类对象的引用 503

15.5 Light Portal的Ajax技术 507

15.5.1 Rico介绍及基本配置 508

15.5.2 Rico的Ajax、拖拽、特效、行为方面的实例 508

15.6 Hibernate在Light Portal中的应用 510

15.6.1 在Light Poatal中配置Hibernate 510

15.6.2 Hibernate映射文件的配置 513

15.6.3 Hibernate的DAO接口及实现方式 515

15.7 Light Portal的开发流程 520

15.7.1 创建Portlet的执行体 521

15.7.2 创建显示页面 526

15.7.3 创建编辑页面 526

15.7.4 配置Portlet 528

15.7.5 添加Portlet到Light Portal 529

15.8 Light Portal与Web应用的集成 530

15.9 总结 531

附录 Hibernate常见问题 533