21世纪高等学校规划教材·计算机科学与技术HIBERNATE+SPRING简明实例教程/吕海东 本书特色
1.全面讲授了Hibernate的基本原理,ORM映射机制,Hibernate的简单和关联映射,使用Hibernate API完成CRUD的实际编程,使用HQL实现的数据查询。
2.讲述了Spring框架在企业级应用项目中的定位和职责,Spring框架的核心IOC和DI原理,Spring Context容器的功能和配置,各种Bean的配置和使用,AOP编程思想和Spring实现,事务处理的Spring实现,Spring与Hibernate,struts2, JavaMail, JNDI和Timer等框架集成配置和应用编程。
21世纪高等学校规划教材·计算机科学与技术HIBERNATE+SPRING简明实例教程/吕海东 内容简介
1.全面讲授了Hibernate的基本原理,ORM映射机制,Hibernate的简单和关联映射,使用Hibernate API完成CRUD的实际编程,使用HQL实现的数据查询。2.讲述了Spring框架在企业级应用项目中的定位和职责,Spring框架的核心IOC和DI原理,Spring Context容器的功能和配置,各种Bean的配置和使用,AOP编程思想和Spring实现,事务处理的Spring实现,Spring与Hibernate,struts2, JavaMail, JNDI和Timer等框架集成配置和应用编程。
21世纪高等学校规划教材·计算机科学与技术HIBERNATE+SPRING简明实例教程/吕海东 目录
第1章 Hibernate概述... 1
1.1 Hibernate概念... 1
1.2 ORM概述... 2
1.3 Hibernate在企业级应用的地位... 3
1.4 JDBC实现ORM.. 4
1.5 Hibernate框架组成... 9
1.6 Hibernate API组成... 10
1.7 Hibernate的特性... 11
本章小结... 12
第2章 Hibernate应用开发环境安装与配置... 13
2.1 Hibernate环境要求... 13
2.2 JavaEE Web项目创建... 13
2.3 Maven Web项目... 25
2.4 创建Hibernate配置文件... 30
2.5 创建数据库表... 34
2.6 创建持久化类... 35
2.7 创建映射文件... 36
2.8 创建业务接口... 36
2.9 创建业务实现类... 37
2.10 创建视图界面... 41
2.11 创建控制器类... 41
2.12 功能测试... 43
本章小结... 43
第3章 Hibernate配置和SessionFactory创建... 44
3.1 Hibernate配置的功能... 44
3.2 Hibernate配置的方式... 45
3.3 Hibernate XML方式配置... 45
3.4 Hibernate属性方式配置... 47
3.5 Hibernate编程配置方式... 47
3.6 Hibernate配置的内容... 48
3.7 数据库连接配置... 49
3.7.1 使用JDBC驱动类连接数据库... 49
3.7.2 使用JavaEE服务器管理的连接池连接数据库... 49
3.7.3 使用连接池框架C3P0连接数据库... 51
3.7.4 使用连接池框架Proxool连接数据库... 52
3.8 Hibernate数据库类型属性配置... 53
3.9 Hibernate处理检索属性... 54
3.10 Hibernate查询批处理设定属性... 55
3.11 SQL日志追踪属性... 55
3.12 缓存策略设定属性... 56
3.13 事务处理和并性控制设定属性... 57
3.14 取得Hibernate SessionFactory的方式... 57
3.14.1 原型模式取得SessionFactory对象... 59
3.14.2 单例工厂模式取得SessionFactory对象... 59
3.14.3 使用Hibernate内置的Session-Facotry-Name属性配置的
JNDI取得SessionFactory对象... 60
本章小结... 62
第4章 Hibernate简单映射... 63
4.1 Hibernate映射的基本原理... 63
4.2 Hibernate映射的数据库表案例... 64
4.3 Hibernate持久类的设计... 66
4.4 Hibernate映射的实现方式... 73
4.5 Hibernate XML文件格式的映射... 73
4.5.1 XML映射配置标记... 76
4.5.2 类的映射配置... 77
4.5.3 主键属性映射... 79
4.5.4 普通属性映射... 80
4.5.5 运算属性映射... 82
4.6 注释方式的映射... 83
4.6.1 实体类注释@Entity和@Table. 85
4.6.2 主属性注释@Id. 86
4.6.3 普通属性注释@Basic. 88
4.6.4 运算属性注释@Formula. 88
4.7 Hibernate的映射类型... 89
4.7.1 Hibernate支持的Java8以前版本的数据类型映射... 89
4.7.2 Hibernate支持的Java8新的数据类型的映射... 90
4.8 Hibernate持久类的引入配置... 91
4.8.1 XML配置方式引入持久类... 91
4.8.2 编程方式引入持久类... 92
本章小结... 93
第5章 主键映射及自动生成器... 94
5.1 Hibernate持久类主键属性字段的设计原则... 94
5.2 Hibernate持久类主属性的设计... 95
5.3 Hibernate主属性的映射配置... 95
5.4 Hibernate支持的主键生成器类型... 96
5.5 XML方式下主属性值生成器类型及配置... 98
5.5.1 assigned生成器... 98
5.5.2 identity生成器... 98
5.5.3 sequence生成器... 98
5.5.4 hilo生成器... 99
5.5.5 increment生成器... 100
5.5.6 seqhilo生成器... 100
5.5.7 native生成器... 101
5.5.8 uuid生成器... 101
5.5.9 uuid2生成器... 102
5.5.10 guid生成器... 102
5.5.11 foreign生成器... 102
5.5.12 select生成器... 103
5.6 注释方式下的主属性值生成器类型和配置... 103
5.6.1 JPA的identity生成器... 103
5.6.2 JPA的sequence生成器... 104
5.6.3 JPA的table主键值生成器... 104
5.6.4 JPA的auto生成器... 105
5.6.5 Hibernate的uuid主键生成器... 106
5.6.6 Hibernate的increment主键生成器... 106
5.6.7 Hibernate的select生成器... 107
5.6.8 Hibernate的assigend生成器... 107
5.7 复合主键的XML方式映射... 108
5.8 复合主键的注释方式映射... 109
本章小结... 110
第6章 多对一和一对多关联映射... 111
6.1 Java对象关系的类型和特性... 111
6.1.1 依赖关系... 112
6.1.2 继承关系... 113
6.1.3 实现关系... 113
6.1.4 关联关系... 113
6.1.5 聚合关系... 114
6.1.6 组合关系... 115
6.2 对象间关联关系特性和Java表达... 115
6.2.1 关联关系的特性... 115
6.2.2 关联关系的类型... 116
6.3 数据库关联关系的表达... 117
6.4 多对一和一对多关联关系的Java表达... 119
6.4.1 单向多对一关联关系表示... 119
6.4.2 单向一对多关联关系表示... 119
6.4.3 双向多对一和一对多的关联关系表达... 120
6.5 XML方式配置多对一和一对多关联关系映射... 121
6.5.1 XML方式映射多对一关联关系... 121
6.5.2 XML方式映射一对多关联关系... 124
6.6 注释方式配置多对一和一对多关联关系映射... 126
6.6.1 多对一关联映射的注释配置... 126
6.6.2 一对多关联映射的注释配置... 131
6.6.3 一对多集合映射的其他注释类... 133
6.7 多对一和一对多关联关系的对象操作的Hibernate编程... 134
6.7.1 多对一(many-to-one)关联关系操作关联对象编程... 134
6.7.2 一对多(one-to-many)关联关系操作关联对象编程... 137
本章小结... 138
第7章 多对多关联映射及编程... 139
7.1 多对多关联的应用场景... 139
7.2 多对多关联的Java表达... 140
7.2.1 单向多对多关联关系的表达... 140
7.2.2 双向多对多关联关系的表达... 143
7.3 多对多关联的数据库表达... 145
7.4 XML方式配置多对多关联映射... 145
7.5 注释方式配置的多对多关联映射... 148
7.5.1 单向多对多关联关系的注释映射... 149
7.5.2 双向多对多关联关系的注释配置... 153
7.6 多对多关联的Hibernate实际应用编程... 155
本章小结... 158
第8章 一对一映射配置及编程... 159
8.1 一对一关联的应用场景... 159
8.2 一对一关联关系的Java表达... 160
8.3 一对一关联的数据库关系模型表达... 161
8.4 一对一关联关系的XML方式映射配置... 162
8.4.1 共享主键实现方式的一对一关系配置... 162
8.4.2 单独外键加唯一性约束的一对一关系配置... 169
8.5 一对一关联关系的注释方式映射配置... 171
8.5.1 主键共享模式下注释映射配置... 171
8.5.2 单独外键模式下注释映射配置... 178
8.6 一对一关联关系的Hibernate持久化实际应用编程... 180
本章小结... 186
第9章 Hibernate持久化编程... 187
9.1 Hibernate持久对象的特征... 187
9.2 持久对象的状态及转换... 188
9.3 Hibernate Session API概述... 189
9.4 Session API中持久对象的增加方法... 194
9.5 Session API中持久对象的修改方法... 196
9.6 Session API中持久对象的删除方法... 197
9.7 Session API中对持久对象的查询方法... 197
9.8 Session API的其他方法... 201
9.8.1 取得查询对象Query的方法... 201
9.8.2 取得SessionFactory的方法... 202
9.8.3 与事务处理相关的方法... 202
9.8.4 取得LOB辅助类的方法... 202
9.8.5 使用JDBC执行原始SQL语句的方法... 204
9.8.6 Hibernate执行数据库存储过程或函数的方法... 205
9.8.7 监测和管理Session自身状态的方法... 206
9.9 持久对象的级联操作... 207
9.10 持久对象的延迟检索策略和应用... 208
本章小结... 209
第10章 Hibernate简单查询... 210
10.1 Hibernate 检索方式... 210
10.2 Hibernate查询接口Query. 212
10.2.1 取得Query接口对象... 213
10.2.2 Query接口的主要方法... 214
10.3 Hibernate查询语言HQL概述... 220
10.3.1 HQL的from子句... 220
10.3.2 HQL的select子句... 221
10.3.3 HQL的where子句... 223
10.3.4 HQL的order by子句... 225
10.4 Query和HQL使用的编程案例... 226
本章小结... 229
第11章 Hibernate高级查询编程... 230
11.1 Hibernate关联查询概述... 230
11.2 内关联查询... 231
11.3 外关联查询的实现... 234
11.3.1 左外关联查询... 235
11.3.2 右外关联查询... 236
11.3.3 全外关联查询... 236
11.4 HQL分类汇总查询的实现... 237
11.5 HQL子查询的实现编程... 238
11.6 HQL批处理增加、修改和删除... 240
11.6.1 HQL update批处理语句... 241
11.6.2 HQL delete批处理语句... 242
11.6.3 HQL insert批处理语句... 242
本章小结... 243
第12章 Hibernate的高级特性应用编程... 244
12.1 Hibernate原始SQL查询... 244
12.1.1 当SQL返回单个数值的编程... 245
12.1.2 当SQL返回单个属性集合时的编程... 246
12.1.3 当SQL返回表所有字段的查询... 246
12.1.4 当SQL包含关联时的查询... 246
12.2 Hibernate调用存储过程编程... 248
12.2.1 当存储过程完成无返回查询结果集的处理情况... 248
12.2.2 当存储过程返回与select类似的有结果集的情况... 250
12.3 Hibernate调用数据库函数编程... 251
12.4 Hibernate对数据库大对象的编程... 253
12.4.1 大对象字段的持久类属性映射... 254
12.4.2 大对象字段对应的属性的持久化编程... 256
12.4.3 大对象字段对应持久类属性的查询编程... 257
本章小结... 257
第13章 Spring概述... 258
13.1 Spring的概念和特性... 258
13.2 Spring的诞生... 259
13.3 Spring的逻辑结构... 260
13.4 Spring的物理结构... 261
13.5 Spring与其他框架的关系... 262
13.6 Spring应用场景... 263
13.7 Spring框架的引入... 264
13.7.1 通过Maven引入Spring核心框架... 264
13.7.2 通过导入类库方式引入Spring框架... 265
13.8 Spring简单案例编程... 266
本章小结... 269
第14章 Spring
Bean基础... 270
14.1 Spring管理的Bean. 270
14.2 Java应用中取得对象的方式... 271
14.3 Spring中配置Bean的XML方式... 272
14.4 Spring配置Bean的注释方式... 275
14.5 Spring编程配置Bean方式... 276
14.6 Spring Bean的scope意义和配置... 277
14.7 Spring通过静态工厂取得Bean对象的配置... 280
14.8 Spring通过实例工厂取得Bean对象的配置... 281
14.9 Spring通过JNDI取得注册Bean对象的配置... 281
14.10 Bean的生命周期处理配置... 282
本章小结... 283
第15章 Spring
IoC容器和依赖... 284
15.1 IoC的概念... 284
15.2 依赖注入的概念... 286
15.3 Spring IoC容器概述... 287
15.4 Spring IoC容器的接口API 288
15.5 Spring IoC容器的实现类API 289
15.6 属性方式DI的实现... 292
15.6.1 XML方式实现DI注入... 292
15.6.2 Java注释方式实现DI注入... 295
15.7 构造方法方式依赖注入的实现... 296
15.7.1 构造方法依赖注入的XML方式配置... 297
15.7.2 构造方法依赖的注入的注释方式配置... 297
本章小结... 298
第16章 Spring
AOP编程... 299
16.1 AOP概念... 299
16.2 AOP的基本组成元素... 300
16.3 AOP的主要应用... 301
16.4 AOP的实现方式... 302
16.5 Spring实现AOP方式与类型... 303
16.6 Spring通过实现指定的AOP接口模式实现Advice. 303
16.7 Advice的XML配置... 307
16.7.1 需要AOP拦截的目标类的配置... 308
16.7.2 Advice类的配置... 308
16.7.3 AOP切入点配置和切入点与Advice关联配置... 308
16.8 Spring通过配置普通POJO类实现AOP. 311
16.8.1 POJO模式的Advice编程... 311
16.8.2 Spring AOP配置POJO模式的Advice. 312
16.9 Spring通过AOP注释实现AOP. 315
16.9.1 AOP不同类型的Advice的注释配置... 316
16.9.2 AOP切面切入点的注释配置... 318
16.10 使用AspectJ注释类声明的AOP切面的编程案例... 321
本章小结... 327
第17章 Spring集成Hibernate. 328
17.1 Spring管理数据库连接池... 329
17.1.1 使用Spring内置的数据库连接池框架... 329
17.1.2 Spring引用JavaEE服务器配置的数据库连接池... 329
17.1.3 Spring配置C3P0管理的连接池... 330
17.1.4 Spring管理DBCP管理的连接池... 331
17.1.5 Spring配置Proxcol框架管理的连接池... 331
17.2 Spring管理Hibernate的SessionFactory. 332
17.3 Spring管理Hibernate配置信息... 335
17.4 Spring管理Hibernate映射信息... 336
17.5 Spring管理Hibernate事务配置XML方式... 338
17.6 Spring管理Hibernate事务注释方式... 343
本章小结... 348
第18章 Spring
MVC基础... 349
18.1 MVC模式概述... 349
18.2 Spring MVC概述... 351
18.3 Spring MVC的组成元素及处理流程... 352
18.4 Spring MVC的核心控制器DispatcherServlet 353
18.5 Spring MVC DispatcherServlet支持的Bean类型... 355
18.6 Spring MVC简单案例的开发... 356
本章小结... 367
第19章 Sprint
MVC控制器和View解析... 368
19.1 Spring MVC控制器概述... 368
19.2 控制器请求地址的映射类@RequestMapping. 370
19.3 控制器方法的参数... 373
19.4 控制器方法的返回类型... 380
19.5 Spring MVC的View类型... 383
19.6 JSP结果类型的解析... 384
19.7 多视图解析器的配置... 384
本章小结... 386
第20章 Spring
MVC文件上传和下载处理... 387
20.1 Web文件上传的处理过程... 387
20.2 Spring MVC文件上传的处理... 388
20.3 使用CommonsMultipartResolver实现文件上传... 389
20.4 使用StandardServletMultipartResovler处理文件上传... 390
20.5 上传文件到Web指定目录的编程... 392
20.6 上传文件保存到数据库表字段的编程... 395
20.7 Spring MVC处理文件下载的编程... 402
本章小结... 406
第21章 Spring
MVC表单标记... 407
21.1 Spring MVC数据绑定基本原理... 407
21.2 Spring MVC 表单标记类型与实现... 408
本章小结... 416
第22章 Spring
MVC数据验证... 417
22.1 Web应用数据验证概述... 417
22.2 Spring MVC支持数据验证的方式... 418
22.3 Spring MVC内置数据验证机制... 418
22.3.1 Spring MVC内置验证框架的接口... 418
22.3.2 Spring MVC内置验证框架的实现编程... 419
22.3.3 Spring MVC中启用验证机制的编程... 420
22.4
Spring MVC集成Java验证机制JSR-303实现数据验证... 422
22.4.1 JSR-303 Bean Validation规范验证使用案例... 424
22.4.2 启用JSR-303注释验证的Spring MVC控制器编程... 426
22.4.3 JSP页面显示验证错误信息... 428
本章小结... 429
第23章 Spring
MVC国际化编程... 430
23.1 国际化的基本概念... 430
23.2 国际化的基本要素... 433
23.3 国际化资源文件的创建... 435
23.4 Java实现国际化的机制与编程... 435
23.5 Spring MVC国际化的实现机制... 437
23.6 Spring MVC实现I18N的编程案例... 440
本章小结... 444
第24章 Spring
REST API编程... 445
24.1 REST API概述... 445
24.1.1 REST的技术体系... 446
24.1.2 REST API的设计规范... 446
24.2 REST API规范的实现约束... 446
24.3 Spring MVC实现REST API 449
24.4 Spring MVC实现REST API客户端编程... 451
24.5 Spring MVC实现REST API的实际案例编程... 454
24.5.1 Spring MVC实现REST API服务器端... 454
24.5.2 Spring MVC编程REST API客户端案例... 456
本章小结... 457
参考文献