第一篇 基础篇 1
第1章 Web应用的发展 1
1.1 从静态网页说起 1
1.2 动态网页的鼻祖CGI 2
1.3 三足鼎立 3
1.3.1 系出名门——ASP和ASP.NET 4
1.3.2 草根中走出的巨人——PHP 5
1.3.3 来自Java阵营——JSP和J2EE 5
1.4 模型-视图-控制器 7
1.4.1 MVC简介 8
1.4.2 MVC的组成部分 8
1.4.3 MVC带来的好处 9
1.5 Ajax的兴起 9
1.5.1 什么是Ajax 10
1.5.2 Ajax的工作原理 10
1.5.3 Ajax的优势所在 12
1.6 小结 13
1.7 习题 14
第2章 Java开发环境及开发工具 15
2.1 下载安装JDK 15
2.2 环境变量设置 17
2.3 小试身手——HelloWorld 18
2.3.1 编辑Java源文件 18
2.3.2 执行类文件 18
2.4 开发工具Eclipse简介 19
2.4.1 Java开发工具简介 19
2.4.2 Eclipse安装 20
2.4.3 Eclipse使用简单例程 21
2.4.4 在Eclipse中调试程序 23
2.4.5 Eclipse常用快捷键 23
2.4.6 Java Web开发工具MyEclipse简介 26
2.5 使用版本控制工具CVS 27
2.5.1 CVSNT的安装与配置 27
2.5.2 使用Eclipse集成的CVS客户端 28
2.6 小结 29
2.7 习题 29
第3章 HTML相关技术基础知识 30
3.1 HTML基础知识 30
3.1.1 什么是HTML 30
3.1.2 HTML运行原理 31
3.1.3 HTML常用标签 31
3.1.4 HTTML表单标签 34
3.1.5 HTML其他标签 35
3.2 JavaScript基础知识 35
3.2.1 什么是JavaScript 36
3.2.2 JavaScript中的事件 36
3.2.3 JavaScript中的对象简介 37
3.2.4 window对象简介 37
3.2.5 document对象简介 39
3.2.6 location对象简介 40
3.2.7 JavaScript输入验证 41
3.2.8 JavaScript高级应用探讨 42
3.3 CSS基础知识 43
3.3.1 什么是CSS 43
3.3.2 CSS属性设置 43
3.3.3 CSS绝对定位示例 45
3.3.4 JavaScript+DIV+CSS实现下拉菜单 45
3.3.5 JavaScript+CSS实现表格变色 47
3.4 小结 48
3.5 习题 48
第4章 JSP技术基础知识 49
4.1 JSP简介 49
4.1.1 运行原理 49
4.1.2 选择JSP的原因 51
4.1.3 环境搭建 52
4.2 JSP基本语法 55
4.3 程序结构 55
4.4 JSP动作指令 57
4.4.1 include动作指令 57
4.4.2 forward动作指令 58
4.4.3 param动作指令 58
4.4.4 plugin动作指令 59
4.4.5 useBean动作指令 59
4.4.6 setProperty动作指令 60
4.4.7 getProperty动作指令 60
4.5 JSP指令 60
4.5.1 page指令 60
4.5.2 include指令 61
4.6 JSP内置对象简介 62
4.7 request对象 62
4.7.1 request对象使用场合 62
4.7.2 request对象主要方法 63
4.7.3 request对象使用示例 64
4.8 response对象 66
4.8.1 response对象使用场合 66
4.8.2 response对象主要方法 66
4.8.3 response对象使用示例 66
4.9 session对象 67
4.9.1 session对象使用场合 67
4.9.2 session对象的主要方法 67
4.9.3 session对象使用示例 67
4.10 out对象 69
4.11 application对象 69
4.12 JSP中文问题完全解决方案 71
4.12.1 JSP页面中文乱码 71
4.12.2 URL传递参数中文乱码 72
4.12.3 表单提交中文乱码 73
4.12.4 数据库操作中文乱码 76
4.12.5 Eclipse开发工具中JSP文件中文不能保存 77
4.12.6 在Eclipse开发工具中中文显示乱码 78
4.12.7 JSP下载中文文件名乱码 79
4.13 其他JSP开发技巧 80
4.13.1 自定义错误页面 80
4.13.2 在MyEclipse中快速部署项目 81
4.13.3 测试配置是否成功 82
4.13.4 在MyEclipse中调试Web应用程序 83
4.13.5 学习使用日志Log4j 84
4.14 小结 85
4.15 习题 85
第5章 Servlet技术基础知识 86
5.1 Servlet简介 86
5.1.1 Servlet的工作原理 86
5.1.2 Servlet的生命周期 87
5.1.3 简单Servlet开发配置示例 87
5.1.4 使用Servlet实现MVC开发模式 89
5.2 JSP页面调用Servlet的方法 89
5.2.1 通过表单提交调用Servlet 90
5.2.2 通过超链接调用Servlet 91
5.3 Servlet中的文件操作 93
5.3.1 Servlet读取文件 93
5.3.2 Servlet写文件 95
5.3.3 Servlet上传文件 97
5.3.4 Servlet下载文件 100
5.4 Servlet过滤器 101
5.4.1 过滤器的基本原理 101
5.4.2 IP访问filter 101
5.4.3 转换字符编码filter 103
5.5 Servlet应用示例 105
5.5.1 获取请求信息头部内容 105
5.5.2 获取请求信息 107
5.5.3 获取参数信息 108
5.5.4 Cookies操作 110
5.5.5 Session操作 112
5.6 小结 113
5.7 习题 114
第6章 JavaBean技术基础知识 115
6.1 JavaBean简介 115
6.1.1 什么是JavaBean 115
6.1.2 JavaBean的种类 117
6.1.3 JavaBean的编码规则 118
6.1.4 JavaBean典型示例 119
6.2 在JSP中使用JavaBean 121
6.2.1 为什么要在JSP中使用JavaBean 121
6.2.2 JSP中使用JavaBean的具体方法 124
6.2.3 JavaBean的编译部署 126
6.3 计数器JavaBean 127
6.3.1 计数器JavaBean背景知识 127
6.3.2 计数器JavaBean的具体实现 127
6.3.3 计数器JavaBean的调用方法示例 128
6.4 数据库操作封装的JavaBean 129
6.4.1 数据库操作封装JavaBean的背景知识 129
6.4.2 数据库操作封装JavaBean具体实现过程 130
6.4.3 数据库操作封装JavaBean关键代码解析 133
6.4.4 数据库操作封装JavaBean调用方法示例 133
6.5 对应数据库表结构的实体JavaBean 135
6.5.1 实体JavaBean的背景知识 135
6.5.2 对应数据库表结构实体JavaBean的实现过程 135
6.5.3 采用实体JavaBean以后对数据库封装方法的改造 136
6.5.4 实体JavaBean及对应数据库操作方法的调用示例 141
6.6 分页操作JavaBean 142
6.6.1 分页操作的背景知识 142
6.6.2 分页操作JavaBean具体实现 142
6.6.3 分页操作JavaBean调用方法解析 144
6.7 小结 146
6.8 习题 146
第7章 JSP数据库开发基础知识 147
7.1 JSP数据库开发环境搭建 147
7.1.1 MySQL数据库的安装 147
7.1.2 SQL Server 2000数据库安装 150
7.2 SQL基础 150
7.2.1 创建和删除数据库 150
7.2.2 创建、修改、删除数据库表 151
7.2.3 查询语句 154
7.2.4 插入、更新、删除语句 156
7.2.5 简单视图操作 157
7.2.6 简单存储过程操作 158
7.3 JSP与数据库建立连接 159
7.3.1 JSP连接SQL Server 2000数据库 160
7.3.2 JSP连接MySQL数据库 160
7.3.3 JSP连接Oracle数据库 160
7.3.4 JSP连接数据库简单示例 161
7.4 JSP操作数据库 161
7.4.1 JSP插入数据操作 161
7.4.2 JSP删除数据操作 163
7.4.3 JSP更新数据库操作 164
7.4.4 JSP查询数据库操作 165
7.4.5 JSP中的数据库操作事务处理 167
7.4.6 JSP查询视图 169
7.4.7 JSP调用存储过程 170
7.5 数据库连接池 173
7.5.1 数据库开发中面临的数据库资源问题 173
7.5.2 数据库连接池的工作原理 173
7.5.3 常用的数据库连接池简介 174
7.5.4 在Tomcat中配置DBCP数据库连接池 174
7.5.5 从连接池中取得连接示例 175
7.5.6 测试连接池设置是否生效 176
7.5.7 使用DBCP自动回收数据库连接资源 177
7.6 数据库访问的代码优化 178
7.6.1 最原始的数据库访问代码示例 178
7.6.2 初步优化——数据库配置信息基础类 178
7.6.3 进一步优化——数据库配置文件 179
7.6.4 继续优化——数据库访问操作类的封装 181
7.6.5 更进一步优化——DAO类封装数据库操作 187
7.6.6 追求完美的优化——添加视图、存储过程 194
7.7 小结 194
7.8 习题 195
第8章 XML技术基础知识 196
8.1 XML入门基础 196
8.1.1 XML简介 196
8.1.2 XML和HTML的区别 197
8.1.3 XML和数据库的区别 198
8.1.4 XML简单语法 198
8.1.5 XML简单示例 201
8.2 文档数据类型定义DTD 201
8.2.1 DTD概述 202
8.2.2 XML文档元素内容定义 202
8.2.3 XML文档元素属性定义 204
8.2.4 XML外部引用DTD示例 206
8.3 XML文档的显示技术 207
8.3.1 XML文档显示技术概述 207
8.3.2 CSS样式表显示 207
8.3.3 XSL样式表显示 209
8.3.4 数据岛对象(DSO)显示 211
8.4 XML文档DOM解析技术 212
8.4.1 XML文档DOM解析技术简介 213
8.4.2 DOM解析示例之验证文档的有效性示例 213
8.4.3 DOM解析示例之动态创建结点示例 215
8.4.4 DOM解析示例之操作XML文档结点属性示例 216
8.5 XPATH结点表达式基础知识 218
8.5.1 XPATH简介 218
8.5.2 XPATH语言中常用的简写符号 218
8.5.3 常用文档结点及其表达式 218
8.6 Java解析XML 219
8.6.1 Java处理XML概述 219
8.6.2 在JSP中生成XML文档 219
8.6.3 使用JAXP按SAX方式解析XML文档 220
8.6.4 使用JDom按DOM方式解析XML文档 222
8.6.5 使用JDom按SAX方式解析XML文档 224
8.7 小结 225
8.8 习题 226
第9章 JSTL基础知识 227
9.1 JSTL简介 227
9.2 JSTL开发环境简单配置 227
9.3 核心标签库 228
9.3.1 〈c:out〉标签 228
9.3.2 〈c:set〉标签 230
9.3.3 〈c:remove〉标签 231
9.3.4 〈c:if〉标签 231
9.3.5 〈c:choose〉、〈c:when〉和〈c:otherwise〉标签 232
9.3.6 〈c:forEach〉标签 234
9.3.7 〈c:forTokens〉标签 235
9.3.8 〈c:import〉标签 236
9.3.9 〈c:redirect〉标签 237
9.3.10 〈c:url〉标签 239
9.3.11 〈c:param〉标签 239
9.3.12 〈c:catch〉标签 239
9.4 数据库标签库 240
9.4.1 〈sql:setDataSource〉标签 240
9.4.2 〈sql:query〉标签 241
9.4.3 〈sql:update〉标签 242
9.4.4 〈sql:param〉标签 243
9.4.5 〈sql:dateParam〉标签 243
9.4.6 〈sql:transaction〉标签 244
9.5 XML操作标签库 244
9.5.1 〈x:parse〉标签 244
9.5.2 〈x:out〉标签 245
9.5.3 〈x:set〉标签 246
9.5.4 〈x:if〉标签 246
9.5.5 〈x:choose〉标签 246
9.5.6 〈x:forEach〉标签 246
9.6 其他标签 248
9.6.1 国际化标签 248
9.6.2 数字格式标签 248
9.6.3 日期格式标签 249
9.6.4 函数标签库 250
9.7 自定义标签库 251
9.8 小结 254
9.9 习题 254
第10章 JSP中邮件功能开发 255
10.1 邮件协议简介 255
10.2 JavaMail简介及开发环境配置 256
10.3 发送邮件示例详细解析 256
10.3.1 发送文本邮件 257
10.3.2 发送HTML邮件 263
10.3.3 发送带有附件的邮件 267
10.4 接收邮件示例详细解析 278
10.4.1 接收简单邮件 278
10.4.2 接收附件 278
10.5 小结 279
10.6 习题 279
第11章 Web报表基础知识 280
11.1 JSP对Excel报表的处理 280
11.1.1 JSP操作Excel工具汇总 280
11.1.2 JExcelApi开发环境简单配置 281
11.1.3 JSP生成Excel报表 281
11.1.4 JSP读取Excel报表 289
11.2 Java对图表的处理 291
11.2.1 JSP图表工具汇总 291
11.2.2 JFreeChart开发环境简单配置 291
11.2.3 JSP生成简单二维柱状图 292
11.2.4 JSP生成简单三维柱状图 295
11.2.5 JSP生成水平方向的柱状图 296
11.2.6 JSP生成多组柱体的柱状图 297
11.2.7 对柱状图柱体显示效果的具体设置 300
11.2.8 JSP生成一般的折线图 302
11.2.9 JSP生成横坐标为时间序列的折线图 304
11.2.10 JSP在同一个报表中生成多条曲线 307
11.2.11 JSP生成二维饼状图 307
11.2.12 JSP生成三维饼状图 310
11.3 小结 311
11.4 习题 311
第12章 学习使用Ant 312
12.1 Ant简介 312
12.2 Ant的安装配置 312
12.3 Ant简单示例——构建HelloWorld工程 313
12.3.1 手工构建HelloWorld工程 314
12.3.2 使用Ant分步构建HelloWorld工程 315
12.3.3 自动构建HelloWorld工程 317
12.4 Ant构建文件解析 319
12.4.1 project结点 319
12.4.2 target结点 319
12.4.3 properties标签 320
12.4.4 classpath结点 321
12.5 Ant中的文件操作 323
12.5.1 创建目录 323
12.5.2 复制文件或者目录 323
12.5.3 移动文件或者目录 325
12.5.4 删除文件或者目录 326
12.6 在Ant中使用属性配置文件 327
12.7 在Ant中执行数据库脚本 328
12.7.1 直接执行数据库脚本 329
12.7.2 使用配置文件执行数据库脚本 330
12.8 Ant构建部署Web应用综合示例 331
12.8.1 属性配置 331
12.8.2 执行数据库初始化脚本 331
12.8.3 配置数据库连接池 332
12.8.4 配置path 333
12.8.5 编译工程 333
12.8.6 部署工程 334
12.8.7 完整构建脚本文件 334
12.9 在Eclipse中使用Ant 336
12.9.1 在Eclipse中编写Ant脚本 336
12.9.2 在Eclipse中运行Ant任务 337
12.10 小结 338
12.11 习题 338
第二篇 进阶篇 339
第13章 Struts应用详解 339
13.1 Struts基础知识 339
13.1.1 Struts的工作原理 339
13.1.2 Struts的工作流程 340
13.1.3 Struts的基本配置 341
13.2 简单Struts应用示例 343
13.2.1 创建JSP页面 343
13.2.2 创建ActionForm 344
13.2.3 创建Action 346
13.2.4 创建JavaBean模型组件 347
13.2.5 资源文件 348
13.2.6 基本配置信息 348
13.3 Struts中的表单处理器ActionForm 349
13.4 Struts中的控制器 350
13.4.1 Action简介 350
13.4.2 Action的基本使用方法 351
13.4.3 DispatchAction的使用方法 351
13.4.4 LookupDispatchAction的使用方法 355
13.5 Struts中的页面转发控制 360
13.5.1 ActionForward简介 360
13.5.2 使用ActionForward传递参数 361
13.5.3 ActionMapping简介 361
13.6 Struts标签库 362
13.6.1 html标签 362
13.6.2 bean标签 364
13.6.3 logic标签 365
13.7 在Struts中使用Validator验证框架 367
13.7.1 Validator验证框架的配置 367
13.7.2 Validator的内置验证器 367
13.7.3 Validator验证框架的简单示例 368
13.8 在Struts中使用Tiles 371
13.8.1 在Struts中配置Tiles框架 371
13.8.2 创建模版页面 371
13.8.3 使用模版页面 373
13.9 小结 374
13.10 习题 374
第14章 Spring应用详解 375
14.1 Spring简介 375
14.1.1 Spring简介 375
14.1.2 Spring开发环境的简单配置 376
14.2 Spring核心理论控制反转介绍 377
14.2.1 控制反转基础知识 377
14.2.2 控制反转简单示例 377
14.2.3 Spring中注入依赖的方法 380
14.2.4 Spring中通过赋值方法注入依赖 380
14.2.5 Spring中通过构造器注入依赖 386
14.3 Spring核心理论面向切面编程介绍 388
14.3.1 面向切面编程基础知识 389
14.3.2 在Spring中创建前置通知 389
14.3.3 在Spring中创建后置通知 392
14.3.4 在Spring中创建拦截通知 393
14.3.5 在Spring中创建异常通知 395
14.3.6 使用Spring静态切入点 398
14.4 Spring实现MVC 398
14.4.1 Spring中MVC的实现原理 398
14.4.2 Spring中简单MVC示例 399
14.4.3 把用户请求映射到控制器 401
14.4.4 在控制器中处理带参数的用户请求 403
14.4.5 在控制器中处理简单的表单 406
14.4.6 解析视图 410
14.5 Spring中的数据库操作 411
14.5.1 在Spring中配置数据源 411
14.5.2 使用JdbcTemplate进行简单的数据库操作 412
14.5.3 使用JdbcTemplate进行Java对象查询操作 414
14.5.4 Spring中另一种Java对象查询的实现方法 417
14.5.5 Spring中更新Java对象的方法 421
14.5.6 Spring和第三方ORM工具整合 422
14.6 Spring中的事务处理 422
14.6.1 事务处理的基本知识 422
14.6.2 Spring中的事务管理策略 423
14.6.3 使用Spring编程式事务管理 423
14.6.4 使用Spring声明式事务管理 425
14.7 小结 427
14.8 习题 427
第15章 Hibernate应用详解 429
15.1 Hibernate简介 429
15.1.1 对象持久化与ORM 429
15.1.2 Hibernate架构概述 430
15.1.3 开发环境的简单配置 431
15.2 Hibernate配置和相关类 431
15.2.1 Configuration类 431
15.2.2 Hibernate配置文件 431
15.2.3 SessionFactory类 432
15.2.4 Session管理 432
15.3 Hibernate中的对象 435
15.3.1 对象在Hibernate的状态 435
15.3.2 持久化类 436
15.3.3 对象识别 439
15.4 Hibernate中对象关系映射 439
15.4.1 基本类映射 439
15.4.2 主键策略 444
15.4.3 多表对象关系映射 445
15.4.4 组件映射 451
15.5 操作持久化数据 452
15.5.1 Session缓存与持久化操作 452
15.5.2 利用DAO来操作数据 453
15.6 Hibernate数据查询 456
15.6.1 HQL检索方式 456
15.6.2 条件查询 465
15.6.3 本地SQL查询 468
15.7 小结 468
15.8 习题 468
第16章 Ajax应用详解 469
16.1 Ajax技术简介 469
16.2 Ajax工作原理简单示例 471
16.2.1 传统的请求响应方式 471
16.2.2 使用Ajax的请求响应方式 472
16.3 XMLHttpRequest对象 474
16.3.1 XMLHttpRequest对象简介 474
16.3.2 创建XMLHttpRequest对象 475
16.3.3 XMLHttpRequest常用方法和属性 476
16.4 客户端向服务器发送请求 476
16.4.1 使用XMLHttpRequest对象发送请求 476
16.4.2 常用发送请求内容的方法 477
16.5 服务器端处理用户请求 477
16.5.1 在服务器端处理用户请求 477
16.5.2 返回XML格式的响应文档 478
16.6 客户端处理服务器响应 478
16.6.1 分析XML格式的文档 478
16.6.2 使用JavaScript调整页面内容 479
16.6.3 客户端处理服务器相应的示例代码 479
16.7 Ajax典型示例 479
16.7.1 异步身份验证 479
16.7.2 输入提示和自动完成 483
16.7.3 联动动态列表 487
16.7.4 异步输入验证 493
16.7.5 工具条提示 496
16.7.6 自动刷新 500
16.7.7 使用DOM动态生成HTML文档 503
16.8 小结 508
16.9 习题 508
第三篇 实战篇 509
第17章 综合Struts+Spring+Hibernate开发图书管理系统 509
17.1 概述 509
17.1.1 系统功能预览 509
17.1.2 系统结构 510
17.1.3 所需资源 511
17.1.4 源代码目录组织 512
17.2 给Web服务器配置web.xml 512
17.2.1 添加Struts 2配置 512
17.2.2 添加Spring配置 513
17.2.3 定义编码转化器(解决中文问题) 513
17.2.4 定义Log的输出 515
17.3 用Struts 2实现Web表现层 516
17.3.1 Struts的配置文件 516
17.3.2 图书管理的Action类 518
17.3.3 在添加图书中采用自动校验 521
17.3.4 使用标签实现图书维护页面 522
17.4 用Hibernate实现数据层 523
17.4.1 创建数据库 523
17.4.2 配置数据源 524
17.4.3 持久化类和映射文件 525
17.4.4 实现图书管理和登录管理的DAO类 525
17.5 Spring整合业务层 530
17.5.1 配置Bean文件 530
17.5.2 实现业务类 532
17.5.3 保存图书中的事务管理 535
17.5.4 浏览图书的分页处理 536
17.6 发布与测试 539
17.6.1 在MyEclipse中发布应用 539
17.6.2 在Tomcat中查看运行结果 540
17.7 小结 541
第1章 Struts概述 1
1.1 Struts历史发展过程 1
1.2 Struts 2简介 3
1.3 为什么要用Struts 2 8
1.4 在Web项目中使用Struts 2 11
第2章 Web基础技术概述 17
2.1 BrS和CrS系统区别 17
2.2 JSP和Servlet介绍 17
2.3 XML知识介绍 20
第3章 Struts 2核心技术 23
3.1 使用web.xml配置Struts 2实现Web项目Struts 2应用 23
3.2 使用配置文件struts.xml实现页面导航定义 24
3.3 使用Action类控制导航业务数据 26
3.4 使用ActionSupport进行校验 28
第4章 Struts 2的另一核心技术——拦截器 32
4.1 拦截器在Struts 2中的默认应用 32
4.2 拦截器原理实现 35
4.3 在Struts 2中配置自定义的拦截器 38
4.4 Struts 2文件上传拦截器的应用 45
第5章 Struts 2标签库 56
5.1 Struts 2标签使用原理解疑 56
5.2 OGNL表达式语言介绍 58
5.3 Struts 2控制标签简介 61
5.4 Struts 2数据标签简介 70
5.5 Struts 2表单标签简介 81
5.6 Struts 2非表单标签简介 93
5.7 Struts 2自定义标签实现图形验证功能 98
第6章 Struts 2非JSP视图技术 102
6.1 velocity视图技术使用介绍 102
6.2 freemarker视图技术使用介绍 105
6.3 JasperReports报表视图技术使用介绍 107
第7章 Struts 2类型转换技术 112
7.1 Struts 2类型转换使用介绍 112
7.2 类型转换发生异常的处理方案 120
第8章 Struts 2输入校验 124
8.1 validate输入校验方式再谈 124
8.2 利用配置文件进行输入校验方法说明 131
8.3 集合类型输入校验介绍 138
8.4 Struts 2输入校验器大全 143
第9章 Struts 2国际化 150
9.1 Struts 2国际化基础应用 150
9.2 Struts 2国际化使用范围说明 156
9.3 用户主动选择国际化应用介绍 162
第10章 Struts 2页面布局实现 165
10.1 sitemesh基本使用方法 165
10.2 sitemesh高级应用 168
第11章 Hibernate技术简介 174
11.1 什么是ORM 174
11.2 Hibernate概述 176
11.3 Hibernate优点 179
第12章 Hibernate入门 181
12.1 准备工作 181
12.2 第一个Hibernate应用 184
12.3 Hibernate配置 187
第13章 Hibernate核心API 195
13.1 Session介绍 195
13.2 简单的CRUD示例 200
13.3 Save还是Update 205
13.4 实体对象的识别 208
13.5 Hibernate一级缓存 210
13.6 Hibernate二级缓存 214
13.7 Hibernate事务处理 221
13.8 使用复合主键 224
第14章 Hibernate集合映射 229
14.1 Set集合映射 229
14.2 List集合映射 234
14.3 Map集合映射 239
14.4 Bag集合映射 243
14.5 Component映射 248
14.6 Composite element映射 252
第15章 Hibernate关系映射 257
15.1 单向多对多映射 257
15.2 双向多对多映射 263
15.3 单向多对一映射 267
15.4 单向一对多映射 272
15.5 双向一对多(多对一)映射 278
15.6 基于外键的单向一对一映射 284
15.7 基于外键的双向一对一映射 289
15.8 基于主键的单向一对一映射 294
15.9 基于主键的双向一对一映射 299
第16章 Criteria条件查询 304
16.1 简单的Criteria查询 304
16.2 设定Criteria查询条件 306
16.3 Criteria中使用SQL语句 309
16.4 复杂的Criteria查询 311
16.5 使用DetchedCriteria查询 313
第17章 HQL查询 315
17.1 简单的HQL查询 315
17.2 复杂的HQL查询 319
17.3 HQL更新、删除操作 322
17.4 在XML中定义HQL 323
第18章 Spring入门 326
18.1 Spring历史发展过程 326
18.2 Spring的技术知识介绍 327
18.3 使用Spring的基础示例 331
第19章 为什么要使用控制反转 335
19.1 new——自己创建 335
19.2 get——工厂模式 337
19.3 set——外部注入 339