EJB JPA数据库持久层开发实践详解

副标题:无

作   者:冯曼菲等编著

分类号:

ISBN:9787121062629

微信扫一扫,移动浏览光盘

简介

  本书全面介绍了JPA(Java Persistence API)的相关知识。全书共分4篇,第1篇介绍了JPA产生的背景及JPA的运行环境、流行的开发工具IDE等;第2篇介绍了 JPA基本知识,包括映射实体、映射实体关系、实体管理器及JPQL的相关知识;第3篇进一步介绍了关于JPA的高级应用,包括持久化上下文、XML映射文件、打包和部署、JPA实现框架和与Spring集成等;第4篇介绍了三个完整案例,分别是学生成绩管理系统(Servlet+JPA)、宠物商店(Swing+JPA)、博客系统(Struts2+Spring2+JPA)。    本书结构清晰,注重实战,深入浅出,非常适合JPA开发人员学习使用,同时也可用做高校相关专业师生和社会培训班的教材。

目录

目 录
第一篇 初识JPA
第1章 JPA概述 2
JPA是Java持久化API(Java Persistence API)的缩写,是Sun官方提供的Java持久化的解决方案,本章将讲述JPA的相关基本知识。
1.1 什么是数据持久化 3
1.2 Java持久化技术 3
1.2.1 序列化(Serialization) 3
1.2.2 JDBC 6
1.2.3 关系对象映射(ORM) 7
1.2.4 对象数据库(ODB) 8
1.2.5 Java数据对象(JDO) 8
1.2.6 EJB 2.X 8
1.3 JPA(Java Persistence API)概述 8
1.3.1 什么是JPA 8
1.3.2 JPA的历史 9
1.3.3 下载JPA规范 9
1.3.4 JPA的优势 10
1.3.5 EJB 3与JPA的关系 11
1.3.6 常见的实现JPA的框架 11
1.4 对象关系映射(ORM) 11
1.4.1 什么是对象关系映射 12
1.4.2 对象关系映射模式 12
1.5 本章小结 12
第2章 搭建JPA开发和运行环境 13
本章将讲述如何搭建EJB和JPA的开发运行环境,包括JBoss IDE for Eclipse的下载和安装、EJB 3.0运行环境JBoss服务器的下载和安装,以及本书所使用的数据库MySQL的下载和安装。
2.1 JBoss概述 14
2.1.1 JBoss Application Server 14
2.1.2 JBoss IDE for Eclipse 15
2.2 JBoss应用服务器的搭建 15
2.2.1 下载和安装JBoss服务器 15
2.2.2 启动JBoss服务器 16
2.2.3 停止JBoss服务器 16
2.2.4 JBoss的文件目录结构 16
2.3 JBoss IDE开发环境的搭建 17
2.3.1 下载JBoss IDE for Eclipse 17
2.3.2 Eclipse中配置JBoss 19
2.3.3 Eclipse中启动和停止JBoss 20
2.4 MySQL数据库的下载和安装 21
2.4.1 MySQL数据库概述 21
2.4.2 下载MySQL 21
2.4.3 安装MySQL 22
2.4.4 运行MySQL 24
2.4.5 下载MySQL客户端 25
2.5 本章小结 26
第3章 JPA之初体验 27
本章将以编写一个Enitity实体为例,包括标注Entity实体、通过实体管理器来实现创建、修改、读取实体Bean的操作。通过本章的学习,读者将对开发实体Bean的过程有一个快速的了解。
3.1 第一个Entity实体类 28
3.1.1 第一个POJO类 28
3.1.2 数据库中对应的表 29
3.1.3 使用注释(Annotations)配置ORM映射 29
3.1.4 配置persistence.xml 31
3.2 第一个SessionBean 32
3.2.1 定义Remote接口 32
3.2.2 SessionBean类 33
3.3 使用EntityManager操作实体 34
3.3.1 依赖注入EntityManager 34
3.3.2 添加Entity 34
3.3.3 根据主键查找Entity 34
3.3.4 更新Entity 35
3.3.5 删除Entity 35
3.3.6 执行查询 35
3.4 部署EJB 35
3.4.1 打EJB-JAR包 35
3.4.2 部署EJB 36
3.4.3 配置DataSource数据源 36
3.4.4 启动JBoss服务器 37
3.4.5 查看JBoss控制台JMX-Console 38
3.5 调用EJB的Client 39
3.5.1 TestClient类 39
3.5.2 运行Client 40
3.6 本章小结 41
第4章 JPA开发工具 42
本章将介绍JPA开发工具Eclipse Dali JPA的使用,内容包括Dali JPA的下载和界面预览、如何连接数据库、如何开发JPA项目、如何进行实体映射等。通过本章的学习,读者将掌握JPA开发工具的使用,为后面章节具体学习JPA的知识打好基础。
4.1 Eclipse Dali JPA 概述 43
4.1.1 什么是Dali JPA 43
4.1.2 下载Dali JPA 43
4.1.3 Dali JPA界面预览 44
4.2 连接数据库 44
4.3 开始JPA开发 45
4.3.1 创建JPA项目 45
4.3.2 创建持久化类 46
4.4 本章小结 47
第二篇 JPA进阶
第5章 映射持久化对象(Entity) 50
本章将详细地介绍如何将POJO类映射为可持久化的Entity实体类,包括映射表、映射字段、映射主键等基本的映射配置。通过本章的学习,读者将能够掌握映射实体的基础知识,为以后学习映射关系打好基础。
5.1 实体映射基础 51
5.1.1 简单的POJO类 51
5.1.2 映射实体(@Entity) 53
5.1.3 无参的构造方法 53
5.1.4 实现Serializable接口 54
5.1.5 可继承性 54
5.1.6 标注主键(@Id) 54
5.1.7 默认实体映射 54
5.2 映射表和字段 56
5.2.1 映射表(@Table) 56
5.2.2 映射方法和属性(@Column) 58
5.2.3 可持久化的基本数据类型 60
5.2.4 映射优化一:基本数据类型VS封装类 60
5.2.5 映射优化二:@Basic设置加载方式 61
5.3 主键映射 62
5.3.1 主键标识(@Id) 62
5.3.2 自增主键 63
5.3.3 表生成器(@ TableGenerator) 63
5.3.4 Sequence生成器(@ Sequence) 66
5.3.5 Identity生成器 67
5.3.6 复合主键(@IdClass) 67
5.3.7 嵌入式主键(@EmbeddedId) 70
5.3.8 几种主键生成策略的比较 71
5.4 映射特殊类型 72
5.4.1 映射Blob和Clob类型(@Lob) 72
5.4.2 映射时间(Temporal)类型(@Temporal) 73
5.4.3 映射枚举(Enumerated)型 74
5.5 映射非持久化类型(@Transient) 77
5.6 本章小结 77
第6章 实体关系映射 78
本章将详细讲述如何进行实体与实体间的关系映射,包括一对一、一对多、多对多关系映射等。通过本章的学习,读者将能够进一步掌握实体间关系的映射。
6.1 实体关系概述 79
6.1.1 实体关系的方向性 79
6.1.2 实体关系的数量性 80
6.2 一对一(@OneToOne) 81
6.2.1 单向关联(Unidirectional) 81
6.2.2 一对一(@ OneToOne) 83
6.2.3 关联指定列(@JoinColumn) 83
6.2.4 双向关联(Bidirectional) 85
6.2.5 主键关联(@PrimaryKeyJoinColumn) 86
6.2.6 默认关联 88
6.2.7 一对一映射的一般步骤 88
6.3 一对多(@OneToMany) 89
6.3.1 一对多模型(单向) 89
6.3.2 映射策略 89
6.3.3 映射策略——外键关联 89
6.3.4 一对多(@OneToMany) 90
6.3.5 映射策略——表关联 91
6.3.6 表关联(@ JoinTable) 92
6.3.7 默认关联 93
6.4 多对一(@ManyToOne) 94
6.4.1 多对一 模型(单向) 94
6.4.2 映射策略——外键关联 94
6.4.3 多对一(@ManyToOne) 95
6.4.4 默认关联 95
6.5 高级一对多和多对一映射 95
6.5.1 双向关联模型 95
6.5.2 双向关联 96
6.5.3 一对多(多对一)映射的一般步骤 96
6.6 多对多(@ManyToMany) 97
6.6.1 多对多模型(单向) 97
6.6.2 映射策略——表关联 97
6.6.3 @ManyToMany 98
6.6.4 双向关联模型 99
6.6.5 默认关联 99
6.6.6 多对多映射的一般步骤 100
6.7 集合类的选择 100
6.7.1 集合类的区别 101
6.7.2 带排序的集合 101
6.7.3 带Key值的集合 102
6.8 关系映射示例:客户关系管理系统 103
6.8.1 实体关系类图 103
6.8.2 数据库表结构 104
6.8.3 客户实体 105
6.8.4 地址实体 107
6.8.5 联系人实体 108
6.8.6 头像实体 109
6.8.7 电话实体 110
6.8.8 订单实体 111
6.8.9 订单明细实体 112
6.8.10 产品实体 113
6.9 本章小结 114
第7章 实体映射的高级应用 115
本章将学习实体映射的高级部分,包括多表映射、嵌入映射和实体的继承映射等。通过本章的学习,读者将能够进一步掌握各种复杂的实体映射。
7.1 多表映射 116
7.1.1 两个表映射为一个实体 116
7.1.2 从表注释(@ SecondaryTable) 118
7.1.3 多个表映射为一个实体 119
7.1.4 多个从表注释(@ SecondaryTables) 120
7.2 嵌入映射 120
7.2.1 嵌入映射表结构 120
7.2.2 嵌入类 120
7.2.3 嵌入到实体 121
7.2.4 映射属性(@AttributeOverride) 121
7.3 实体的继承策略 122
7.3.1 类结构关系图 122
7.3.2 三种继承策略 123
7.3.3 继承关系的实体保存在一个表(SINGLE_TABLE) 123
7.3.4 每个实体子类保存在一个表(JOINED) 128
7.3.5 每个实体类保存在一个表(TABLE_PER_CLASS) 130
7.3.6 三种继承策略对比 133
7.4 深入实体继承 134
7.4.1 继承自抽象(abstract)实体类 134
7.4.2 继承自非映射实体类(Mapped Superclasses) 135
7.4.3 继承自非实体类 137
7.4.4 继承的设计重构 138
7.4.5 带继承关系的实体查询(多态) 138
7.5 本章小结 139
第8章 实体管理器(EntityManager) 140
本章将讲述实体管理器(Entity Manager)的相关知识,包括实体管理器的作用、如何通过实体管理器对实体进行CRUD操作、实体声明周期的几个阶段,以及实体的面向方面编程(AOP)、实体监听器的使用等。通过本章的学习,读者将能够深入掌握如何对实体进行有效的管理。
8.1 实体管理器概述 141
8.1.1 什么是实体管理器 141
8.1.2 Entity Manager API 141
8.1.3 EntityManager方法详解 142
8.2 操作实体(CRUD) 146
8.2.1 创建实体(持久化) 146
8.2.2 持久化带关系的实体 147
8.2.3 根据主键查找实体 149
8.2.4 实体属性及实体的加载方式 150
8.2.5 更新实体 152
8.2.6 更新实体关系 153
8.2.7 删除实体 154
8.2.8 删除关联的实体 154
8.3 实体的生命周期 155
8.3.1 实体的几种状态 155
8.3.2 瞬时状态(Transient) 156
8.3.3 持久化状态(Persisted) 156
8.3.4 托管状态(Attatched或Managed) 156
8.3.5 游离状态(Detached) 157
8.3.6 销毁状态(Removed) 157
8.3.7 分析实体状态实例 158
8.4 实体的高级操作 159
8.4.1 实体的联级操作 159
8.4.2 获得实体的另一种方式 160
8.4.3 同步数据库(flush与flushType) 160
8.4.4 refresh()和clear()方法 162
8.5 实体监听器(Listener) 162
8.5.1 回调事件(Callback Events) 162
8.5.2 监听器定义在实体中 163
8.5.3 监听器定义在实体外 165
8.5.4 默认实体监听器 166
8.5.5 继承中的实体监听器 167
8.5.6 监听器的调用顺序 169
8.5.7 几种监听实体方式的比较 169
8.6 本章小结 170
第9章 查询(Query) 171
本章将详细讲述如何在JPA中执行查询,包括基本JPQL语句的书写、查询Query API、查询结果的处理、命名(Named)查询和本地(Native)查询。通过本章的学习,读者将能够掌握查询的基本方法,为下一章学习JPQL查询打好基础。
9.1 Query 概述 172
9.1.1 一个简单的查询示例 172
9.1.2 Query API 173
9.1.3 Query 方法详解 174
9.1.4 Query的简化写法 176
9.2 JPQL入门 177
9.2.1 查询实体 177
9.2.2 查询实体属性 178
9.2.3 查询关联实体 179
9.3 准备查询 180
9.3.1 查询参数方法一——命名设置参数 180
9.3.2 查询参数方法二——位置设置参数 181
9.3.3 不带参数的查询 181
9.3.4 查询策略的选择 181
9.3.5 分页查询 182
9.3.6 设置提示(Hints) 183
9.3.7 设置提交模式(FlushMode) 183
9.4 命名查询(Named Query) 183
9.4.1 命名查询示例 183
9.4.2 定义查询命名 184
9.4.3 @NamedQuery注释 184
9.5 查询结果的处理 185
9.5.1 执行查询 185
9.5.2 查询结果的类型 186
9.5.3 查询结果为实体 186
9.5.4 查询结果为基本数据类型 187
9.5.5 查询结果为数组 187
9.5.6 查询结果为自定义对象 188
9.6 本地查询(Native Query) 189
9.6.1 本地查询概述 189
9.6.2 执行本地查询 189
9.6.3 查询结果与实体映射 191
9.6.4 自定义查询映射 191
9.6.5 @SqlResultSetMapping 193
9.6.6 @NamedNativeQuery本地命名查询 195
9.7 查询技巧 197
9.7.1 日期类型的查询 197
9.7.2 动态查询 201
9.8 本章小结 203
第10章 查询语言(JPQL) 204
本章将详细讲述JPA中的查询语言JPQL,内容包括SELECT、FROM、WHERE查询语句的语法,批量更新和删除的语法等。通过本章的学习,读者将深入掌握JPQL的各种语法,并且能够熟练地编写查询语言。
10.1 JPQL基础 205
10.1.1 JPQL基本语法 205
10.1.2 SELECT子句 205
10.1.3 继承实体的查询 206
10.2 FROM语句 206
10.2.1 FROM基本语法 206
10.2.2 基于集合实体的查询(关联查询) 207
10.2.3 关联查询 207
10.2.4 内连接(INNER JOIN) 209
10.2.5 左连接(LEFT JOIN) 210
10.2.6 抓取连接(FETCH JOIN) 210
10.2.7 唯一性查询(DISTINCT) 211
10.3 WHERE语句 211
10.3.1 WHERE基本语法 211
10.3.2 直接量(Literals) 212
10.3.3 查询条件操作符优先级 212
10.3.4 算术操作符(Arithmetic Operators) 213
10.3.5 逻辑操作符(Logic Operators) 213
10.3.6 比较操作符(Comparison Operators) 213
10.3.7 BETWEEN操作符 214
10.3.8 IN操作符 214
10.3.9 LIKE操作符 216
10.3.10 NULL操作符 216
10.3.11 EMPTY操作符 217
10.3.12 MEMBER OF操作符 217
10.4 函数表达式 218
10.4.1 字符串函数 218
10.4.2 数值函数 219
10.4.3 日期函数 219
10.5 子查询 219
10.5.1 基本子查询 219
10.5.2 EXISTS表达式 220
10.5.3 ALL和ANY表达式 220
10.6 分组查询 221
10.6.1 分组查询基本语法 221
10.6.2 分组查询函数 222
10.7 ORDER BY表达式 222
10.8 批量操作 223
10.8.1 批量更新 223
10.8.2 批量删除 223
10.8.3 执行批量操作 224
10.9 本章小结 224
第三篇 JPA高级应用
第11章 持久化上下文 226
本章将详细讲述持久化上下文(Persistence Contexts)的相关知识,内容包括如何从Java EE容器中创建EntityManager对象、如何从Java SE中创建EntityManager对象、持久化上下文与事务(Transction)的关系,以及实体管理器工厂(Entity Manager Factory)的相关内容。
通过本章的学习,读者将深入掌握JPA中有关持久化上下文、事务处理的相关知识,从而能够更加深入地应用JPA。
11.1 获得EntityManager对象 227
11.1.1 Java EE环境与J2SE环境 227
11.1.2 两种类型的EntityManager对象 227
11.1.3 容器托管的(container-managed)EntityManager对象 228
11.1.4 应用托管的(application-managed)EntityManager对象 229
11.1.5 ThreadLocal的使用 233
11.2 实体管理器工厂(EntityManagerFactory) 234
11.2.1 javax.persistenc.Persistence API 234
11.2.2 EntityManagerFactory API 235
11.2.3 实现自己的JPA 236
11.3 容器托管的EntityManager持久化上下文 239
11.3.1 事务范围TRANSACTION 239
11.3.2 扩展范围EXTENDED 240
11.4 事务管理 241
11.4.1 事务与EntityManager 241
11.4.2 JTA管理事务 242
11.4.3 RESOURCE_LOCAL管理事务 244
11.4.4 EntityTransaction API 244
11.5 应用托管的EntityManager的持久化上下文 246
11.5.1 无状态的会话Bean与JTA事务(事务范围) 246
11.5.2 无状态的会话Bean与JTA事务(扩展范围) 246
11.5.3 有状态的会话Bean与JTA事务 247
11.5.4 RESOURCE_LOCAL事务 248
11.6 本章小结 248
第12章 XML映射文件 249
本章将详细讲述实体关系映射的另一种方式——XML配置实体映射。内容包括各种XML文件的映射规则、基本映射配置的使用方法等。通过本章的学习,读者将不仅能够使用注释映射实体,还将能够熟练地使用XML映射文件进行配置。
12.1 XML映射配置VS注释 250
12.2 映射文件概述 250
12.2.1 映射文件的保存位置 250
12.2.2 获取映射文件DTD 251
12.3 映射基础 251
12.3.1 映射文件的基本结构 251
12.3.2 映射文件的基本元素 252
12.4 配置注释< persistence-unit-metadata > 252
12.4.1 禁用注释 253
12.4.2 持久化单元的默认配置 253
12.5 映射文件的默认配置 256
12.5.1 默认包名 256
12.5.2 默认schema 257
12.5.3 默认catalog 257
12.5.4 默认访问类型 258
12.6 配置查询、生成器和查询结果 258
12.6.1 sequence生成器 258
12.6.2 表生成器 258
12.6.3 命名查询 259
12.6.4 本地命名查询 260
12.6.5 查询结果映射 261
12.7 配置实体 262
12.7.1 基本配置 262
12.7.2 配置表 263
12.7.3 配置从表 263
12.7.4 配置属性 264
12.7.5 配置实体关系 271
12.8 配置继承 277
12.8.1 配置所有实体保存为一个表(SINGLE_TABLE) 277
12.8.2 每个实体子类保存在一个表(JOINED) 278
12.8.3 配置非实体类 279
12.9 配置嵌入类 279
12.9.1 配置类 280
12.9.2 和配置嵌入实体类 280
12.10 配置实体监听器 281
12.10.1 监听器定义在实体内 281
12.10.2 监听器定义在实体外 281
12.10.3 禁用父类监听器 282
12.10.4 禁用默认监听器 283
12.11 本章小结 283
第13章 打包和部署 284
本章将详细讲述JPA打包的相关知识,内容包括persistence.xml如何配置、打包的位置,以及如何将Java EE应用打成EAR包、EJB-JAR包、WAR包;不同类型的包中的类加载机制等。通过本章的学习,读者将深入掌握JPA中打包和部署的相关知识,对JPA应用程序的发布有更加深入的了解。
13.1 Java EE应用打包概述 285
13.1.1 Java EE包的类型 285
13.1.2 EAR包结构 285
13.1.3 EJB-JAR包结构 287
13.1.4 WAR包结构 287
13.2 Java EE类加载机制 288
13.2.1 Java类加载器 288
13.2.2 类加载顺序模型 289
13.2.3 Java EE应用的加载顺序 293
13.2.4 类加载原理示例 295
13.3 配置persistence.xml 298
13.3.1 保存位置 299
13.3.2 persistence.xml的基本结构 299
13.3.3 配置持久化单元名称 300
13.3.4 配置事务类型 300
13.3.5 配置实现者 301
13.3.6 配置数据源 301
13.3.7 配置映射文件 304
13.3.8 配置管理类 304
13.3.9 配置自定义配置 306
13.4 JPA打包最佳实践 306
13.4.1 J2SE打包最佳实践 306
13.4.2 J2EE打包最佳实践——与EJB组件 307
13.4.3 J2EE打包最佳实践——与Web应用 309
13.5 本章小结 311
第14章 JPA实现框架 312
本章将讲述与JPA实现框架相关的知识,主要包括常用的开源JPA实现框架Hibernate 、OpenJPA 和Toplink。JPA作为Java EE的规范,它只是提供了一种标准的API。程序员若要使用JPA,仍需要选择JPA的实现框架。通过本章的学习,读者将能够了解与不同的JPA实现框架相关的知识,以便在实际的项目中做出合适的选择。
14.1 Hibernate JPA 313
14.1.1 Hibernate 与JPA 313
14.1.2 Hibernate下载 313
14.1.3 配置方式 314
14.1.4 基本配置 315
14.1.5 配置日志 318
14.1.6 配置缓存 319
14.1.7 配置JDBC和数据库 320
14.1.8 其他的常用配置 323
14.2 OpenJPA 324
14.2.1 OpenJPA与JPA 324
14.2.2 OpenJPA下载 325
14.2.3 配置日志 325
14.2.4 配置缓存 327
14.2.5 配置JDBC和数据库 328
14.2.6 增强器的使用(Enhancer) 330
14.3 Toplink JPA 330
14.3.1 Toplink 与JPA 331
14.3.2 Toplink下载 331
14.3.3 配置日志 331
14.3.4 配置缓存 333
14.3.5 配置JDBC和数据库 335
14.3.6 配置DDL 337
14.3.7 其他自定义配置 338
14.3.8 配置查询优化 338
14.3.9 加载优化 340
14.4 本章小结 340
第15章 JPA与Spring集成 341
本章将讲述JPA与当前流行的轻量级企业及应用框架Spring集成的相关内容,首先简单介绍Spring的基本概念,然后逐步讲述如何将Spring与JPA集成。通过本章的学习,读者将能够根据项目的实际需求,将Spring与各种JPA实现框架集成。
15.1 Spring概述 342
15.1.1 什么是Spring 342
15.1.2 Spring的特性 342
15.1.3 Spring与JPA 343
15.2 开始Spring之旅 344
15.2.1 IoC容器 344
15.2.2 普通的Bean 344
15.2.3 容器管理的Bean 345
15.2.4 在容器中运行 346
15.3 Spring中集成JPA 348
15.3.1 集成前的准备 348
15.3.2 配置EntityManagerFactory 349
15.3.3 配置事务Transaction 350
15.3.4 运行程序 351
15.4 Spring Web框架 352
15.4.1 Spring Web概述 352
15.4.2 配置Spring Web应用 353
15.4.3 开始Spring Web之旅 353
15.5 Spring Web集成JPA 355
15.5.1 集成前的准备 355
15.5.2 配置数据源 355
15.5.3 注入业务逻辑 356
15.5.4 运行程序 357
15.6 本章小结 358
第四篇 典型案例
第16章 学生成绩管理系统(Servlet+JPA) 360
作为Java持久层的标准API,JPA可以脱离EJB3框架,在普通Java程序中使用。Java Application、Java Applet、Java Web Application等都可以使用JPA。
本章将使用JPA来实现一个学生成绩管理系统,通过实例学习JPA在实际项目中的使用,体会JPA比传统JDBC的方便之处,对Servlet,JSP,EL Expression,JSTL等技术也会有更深刻的理解。
16.1 系统概述 361
16.1.1 需求描述 361
16.1.2 系统预览 361
16.2 系统构架 361
16.2.1 系统结构 362
16.2.2 CharacterFilter 362
16.2.3 异常处理 363
16.3 数据库设计 365
16.3.1 数据表UML 365
16.3.2 SQL脚本 365
16.4 JPA实体设计 367
16.4.1 JPA实体UML 367
16.4.2 JPA实体类代码 367
16.4.3 persistence.xml配置 373
16.4.4 JPA实体的部署 375
16.5 班级模块 375
16.5.1 添加页面addClass.jsp 375
16.5.2 添加班级 376
16.5.3 使用标注获取EntityManagerFactory 380
16.5.4 班级列表 380
16.5.5 修改班级 382
16.5.6 删除班级 384
16.6 课程模块 385
16.6.1 添加、删除、修改课程 386
16.6.2 选择听课学生 389
16.7 学生模块 393
16.7.1 分页显示学生列表 394
16.7.2 添加修改删除学生 398
16.8 分数模块 403
16.8.1 添加学生成绩 404
16.8.2 列出学生成绩 404
16.9 本章小结 407
第17章 宠物商店 (Swing+JPA) 408
EJB3部署在Java EE容器中,可以被任何Java程序调用。Java Web程序、Java Swing程序、Java手机程序等都可以远程或本地调用EJB3组件。
本章将使用Java Swing来演示图形界面程序如何调用EJB3组件完成复杂业务逻辑。读者可以从中体会Java EE容器与Java Web容器的区别,并掌握EJB3图形编程的相关技巧。
17.1 系统概述 409
17.1.1 需求描述 409
17.1.2 系统预览 409
17.2 系统构架 409
17.2.1 系统构架 410
17.2.2 实体类设计 410
17.2.3 业务类实现 412
17.2.4 Session Bean查找 416
17.2.5 persistence.xml配置 417
17.2.6 EJB3组件部署 418
17.3 登录对话框 419
17.3.1 登录对话框 419
17.3.2 异常信息显示 422
17.4 主购物窗口 423
17.4.1 主购物窗口 423
17.4.2 主购物窗口代码 423
17.4.3 宠物列表Model 428
17.4.4 添加宠物类别命令 429
17.4.5 删除宠物类别命令 434
17.4.6 添加宠物命令 436
17.5 购买窗口 439
17.5.1 购买对话框 439
17.5.2 购物车对话框 442
17.5.3 付款操作 445
17.6 本章小结 446
第18章 博客系统(Struts2+ Spring2+JPA) 447
前面的例子是单独使用JPA或单独使用EJB3。实际上,商业项目很少只使用一种技术。本章将使用Spring2框架与Struts2框架结合JPA来实现一个博客系统。
18.1 系统概述 448
18.1.1 需求描述 448
18.1.2 系统预览 448
18.2 系统构架 448
18.2.1 系统构架 449
18.2.2 执行流程 449
18.3 实体类设计 450
18.3.1 基础实体BaseBean 450
18.3.2 用户实体Person 451
18.3.3 爱好实体Hobby 452
18.3.4 博客实体Blog 452
18.3.5 类别实体Category 453
18.3.6 文章实体Post 453
18.3.7 登录信息类PersonInfo 454
18.3.8 persistence.xml 454
18.4 业务模块设计 455
18.4.1 DAO层接口 455
18.4.2 DAO层实现 456
18.4.3 公共Service层接口 457
18.4.4 公共Service层实现 458
18.4.5 用户Service接口 459
18.5 用户模块 460
18.5.1 BaseAction基础类 460
18.5.2 用户注册 461
18.5.3 struts.xml配置 463
18.5.4 ApplicationContext.xml配置 465
18.5.5 web.xml配置 467
18.5.6 register.jsp 468
18.5.7 header.jsp,footer.jsp 469
18.5.8 注册表单验证 472
18.5.9 异常处理 473
18.5.10 用户照片文件上传 474
18.5.11 用户登录注销 475
18.6 博客模块 477
18.6.1 开通博客 477
18.6.2 浏览博客 480
18.7 类别模块 482
18.7.1 类别列表 482
18.7.2 添加类别 485
18.7.3 浏览类别 488
18.8 文章模块 493
18.8.1 列出文章 493
18.8.2 添加文章 496
18.8.3 浏览文章 498
18.9 本章小结 500
附录A JPA ORM Annotation参考 501
附录B 其他的JPA Annotation参考 506

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

EJB JPA数据库持久层开发实践详解
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon