目 录
第1章 EJB知识与运行环境配置 1
1.1 什么是Enterprice JavaBeans(EJB) 1
1.2 EJB的运行环境 1
1.3 什么是JNDI 2
1.4 下载与安装JDK 2
1.5 下载与安装Eclipse 3
1.6 下载与安装JBoss 3
1.7 运行第一个EJB 3.0例子 5
1.8 熟悉JBoss的目录结构 5
1.9 在JBoss部署应用 6
1.10 如何恢复本书配套例子的开发环境 7
1.11 执行项目中的Ant任务 9
1.12 运行单元测试用例 10
1.2 EJB的运行环境 1
1.3 什么是JNDI 2
1.4 下载与安装JDK 2
1.5 下载与安装Eclipse 3
1.6 下载与安装JBoss 3
1.7 运行第一个EJB 3.0例子 5
1.8 熟悉JBoss的目录结构 5
1.9 在JBoss部署应用 6
1.10 如何恢复本书配套例子的开发环境 7
1.11 执行项目中的Ant任务 9
1.12 运行单元测试用例 10
第2章 会话Bean(Session Bean) 11
2.1 Stateless Session Beans(无状态Bean)开发 11
2.3 Stateless Session Bean的生命周期 28
2.4 Stateful Session Bean(有状态Bean)开发 30
2.5 激活机制(Activation Mechanism) 32
2.6 Stateful Session Bean的生命周期 34
2.7 EJB调用机制 35
2.8 如何改变Session Bean的JNDI 名称 36
2.9 Session Bean的生命周期事件 38
2.10 (Interceptor) 41
2.11 依赖注入(Dependency Injection) 47
2.13 安全服务(Security Service) 65
2.1.1 开发只实现Remote接口的无状态Session Bean 12
2.1.2 开发只实现Local接口的无状态Session Bean 23
2.1.3 开发实现了Remote与Local接口的无状态Session Bean 25
2.2 实例池化(Instance Pooling) 27
2.1.2 开发只实现Local接口的无状态Session Bean 23
2.1.3 开发实现了Remote与Local接口的无状态Session Bean 25
2.3 Stateless Session Bean的生命周期 28
2.4 Stateful Session Bean(有状态Bean)开发 30
2.5 激活机制(Activation Mechanism) 32
2.6 Stateful Session Bean的生命周期 34
2.7 EJB调用机制 35
2.8 如何改变Session Bean的JNDI 名称 36
2.9 Session Bean的生命周期事件 38
2.10 (Interceptor) 41
2.11 依赖注入(Dependency Injection) 47
2.11.1 资源类型的注入 54
2.11.2 注入与继承关系 57
2.11.3 自定义注入注释 58
2.12 定时服务(Timer Service) 63
2.11.2 注入与继承关系 57
2.11.3 自定义注入注释 58
2.13 安全服务(Security Service) 65
第3章 实体Bean(Entity Bean) 80
3.1 JBoss数据源的配置 80
3.3 成员属性映射 98
3.4 建议重载实体Bean的equals()和hashCode()方法 103
3.5 映射的表名或列名与数据库保留字同名时的处理 104
3.6 多表映射的实体Bean 104
3.7 持久化实体管理器EntityManager 110
3.1.1 MySQL数据源的配置 81
3.1.2 MS SQL Server 2000数据源的配置 82
3.1.3 Oralce 9i数据源的配置 82
3.2 单表映射的实体Bean 83
3.1.2 MS SQL Server 2000数据源的配置 82
3.1.3 Oralce 9i数据源的配置 82
3.3 成员属性映射 98
3.4 建议重载实体Bean的equals()和hashCode()方法 103
3.5 映射的表名或列名与数据库保留字同名时的处理 104
3.6 多表映射的实体Bean 104
3.7 持久化实体管理器EntityManager 110
3.7.1 实体的状态 120
3.7.2 Entity获取find()或getReference() 121
3.7.3 持久化实体persist() 122
3.7.4 更新实体 122
3.7.5 合并merge() 123
3.7.6 删除remove() 124
3.7.7 执行JPQL操作createQuery() 125
3.7.8 执行SQL操作createNativeQuery() 125
3.7.9 刷新实体refresh() 126
3.7.10 检测实体是否处于托管状态contains() 126
3.7.11 分离所有正在托管的实体clear() 127
3.7.12 刷新flush()与设置flush模式setFlushMode() 127
3.7.13 获取持久化实现者的引用getDelegate() 130
3.8 关系/对象映射 130
3.7.2 Entity获取find()或getReference() 121
3.7.3 持久化实体persist() 122
3.7.4 更新实体 122
3.7.5 合并merge() 123
3.7.6 删除remove() 124
3.7.7 执行JPQL操作createQuery() 125
3.7.8 执行SQL操作createNativeQuery() 125
3.7.9 刷新实体refresh() 126
3.7.10 检测实体是否处于托管状态contains() 126
3.7.11 分离所有正在托管的实体clear() 127
3.7.12 刷新flush()与设置flush模式setFlushMode() 127
3.7.13 获取持久化实现者的引用getDelegate() 130
3.8.1 双向一对多及多对一映射 130
3.8.2 单向一对多 142
3.8.3 单向多对一 146
3.8.4 双向一对一映射 150
3.8.5 单向一对一 159
3.8.6 双向多对多映射 163
3.8.7 单向多对多 173
3.9 JPQL查询 177
3.8.2 单向一对多 142
3.8.3 单向多对一 146
3.8.4 双向一对一映射 150
3.8.5 单向一对一 159
3.8.6 双向多对多映射 163
3.8.7 单向多对多 173
3.9.1 命名参数查询 179
3.9.2 位置参数查询 179
3.9.3 Date参数 180
3.9.4 一个JPQL查询例子 180
3.9.5 命名查询 193
3.9.6 排序(order by) 193
3.9.7 查询部分属性 194
3.9.8 查询中使用构造器(Constructor) 194
3.9.9 聚合查询(Aggregation) 195
3.9.10 关联(join) 197
3.9.11 排除相同的记录DISTINCT 199
3.9.12 比较Entity 200
3.9.13 批量更新(Batch Update) 200
3.9.14 批量删除(Batch Remove) 201
3.9.15 逻辑非运算符NOT 201
3.9.16 使用操作符BETWEEN 202
3.9.17 使用操作符IN 202
3.9.18 使用操作符LIKE 203
3.9.19 使用操作符IS NULL 203
3.9.20 使用操作符IS EMPTY 204
3.9.21 字符串函数 204
3.9.22 日期和时间函数 205
3.9.23 数学函数 206
3.9.24 Member of 206
3.9.25 子查询 207
3.9.26 EXISTS 207
3.9.27 All、ANY、SOME 208
3.9.28 结果集分页 209
3.10 调用存储过程 210
3.9.2 位置参数查询 179
3.9.3 Date参数 180
3.9.4 一个JPQL查询例子 180
3.9.5 命名查询 193
3.9.6 排序(order by) 193
3.9.7 查询部分属性 194
3.9.8 查询中使用构造器(Constructor) 194
3.9.9 聚合查询(Aggregation) 195
3.9.10 关联(join) 197
3.9.11 排除相同的记录DISTINCT 199
3.9.12 比较Entity 200
3.9.13 批量更新(Batch Update) 200
3.9.14 批量删除(Batch Remove) 201
3.9.15 逻辑非运算符NOT 201
3.9.16 使用操作符BETWEEN 202
3.9.17 使用操作符IN 202
3.9.18 使用操作符LIKE 203
3.9.19 使用操作符IS NULL 203
3.9.20 使用操作符IS EMPTY 204
3.9.21 字符串函数 204
3.9.22 日期和时间函数 205
3.9.23 数学函数 206
3.9.24 Member of 206
3.9.25 子查询 207
3.9.26 EXISTS 207
3.9.27 All、ANY、SOME 208
3.9.28 结果集分页 209
3.10.1 调用无返回值的存储过程 211
3.10.2 调用返回单值的存储过程 211
3.10.3 调用返回表全部列的存储过程 212
3.10.4 调用返回部分列的存储过程 213
3.11 复合主键(Composite Primary Key) 214
3.10.2 调用返回单值的存储过程 211
3.10.3 调用返回表全部列的存储过程 212
3.10.4 调用返回部分列的存储过程 213
3.11.1 复合主键的定义 214
3.11.2 另一种复合主键的定义方式 223
3.12 实体继承 227
3.11.2 另一种复合主键的定义方式 223
3.12.1 每个类分层结构一张表(table per class hierarchy) 227
3.12.2 每个子类一张表(table per subclass) 233
3.12.3 每个具体类一张表(table per concrete class) 236
3.13 Entity的生命周期和状态 239
3.12.2 每个子类一张表(table per subclass) 233
3.12.3 每个具体类一张表(table per concrete class) 236
3.13.1 生命周期回调事件 240
3.13.2 在外部类中实现回调 241
3.13.3 在Entity类中实现回调 245
3.13.2 在外部类中实现回调 241
3.13.3 在Entity类中实现回调 245
第4章 事务管理服务 249
4.1 容器管理事务(CMT) 250
4.2 Bean管理事务(BMT) 270
4.3 事务并发的问题与处理 279
4.2 Bean管理事务(BMT) 270
4.3 事务并发的问题与处理 279
4.3.1 事务并发的问题 279
4.3.2 事务并发的处事 281
4.3.2 事务并发的处事 281
4.4 因并发事务引起的更新丢失问题及处理 286
4.4.1 使用SERIALIZABLE隔离级别避免更新丢失 294
4.4.2 修改代码逻辑来避免更新丢失 297
4.4.3 使用悲观锁避免更新丢失 300
4.4.4 使用乐观锁避免更新丢失 305
4.4.2 修改代码逻辑来避免更新丢失 297
4.4.3 使用悲观锁避免更新丢失 300
4.4.4 使用乐观锁避免更新丢失 305
第5章 消息服务(Java Message Service) 311
5.1 消息驱动Bean(Message Driven Bean) 313
5.2 Queue消息的发送与接收(PTP消息传递模型) 314
5.3 Topic消息的发送与接收(Pub/sub消息传递模型) 322
5.4 消息选择器(Message selector) 326
5.2 Queue消息的发送与接收(PTP消息传递模型) 314
5.3 Topic消息的发送与接收(Pub/sub消息传递模型) 322
5.4 消息选择器(Message selector) 326
第6章 Web服务(Web Service) 328
6.1 EJB容器模型的Web Service开发 328
6.2 Web容器模型的Web Service开发 339
6.3 Web Service的客户端调用 341
6.2 Web容器模型的Web Service开发 339
6.3 Web Service的客户端调用 341
6.3.1 在J2SE或Web中调用Web Service 341
6.3.2 在EJB中调用Web Service 343
6.3.2 在EJB中调用Web Service 343
第7章 在WebLogic中使用EJB 3.0 347
7.1 WebLogic的安装 347
7.2 启动WebLogic Examples服务器 350
7.3 熟悉WebLogic的管理控制台 350
7.4 关闭WebLogic Examples服务器 353
7.5 安装与删除企业应用 354
7.6 安装与删除EJB模块 357
7.7 安装与删除Web应用 359
7.8 安装和引用Java EE共享库 361
7.9 使用Ant发布与卸载应用 363
7.10 创建JDBC数据源 364
7.11 WebLogic的JNDI名称 367
7.12 HelloWorld例子 370
7.13 Entity Bean应用例子 375
7.14 Message-Driven Bean应用例子 384
7.2 启动WebLogic Examples服务器 350
7.3 熟悉WebLogic的管理控制台 350
7.4 关闭WebLogic Examples服务器 353
7.5 安装与删除企业应用 354
7.6 安装与删除EJB模块 357
7.7 安装与删除Web应用 359
7.8 安装和引用Java EE共享库 361
7.9 使用Ant发布与卸载应用 363
7.10 创建JDBC数据源 364
7.11 WebLogic的JNDI名称 367
7.12 HelloWorld例子 370
7.13 Entity Bean应用例子 375
7.14 Message-Driven Bean应用例子 384
7.14.1 创建队列 384
7.14.2 创建主题 388
7.14.3 队列消息的发送与接收 389
7.14.4 主题消息的发送与接收 392
7.14.2 创建主题 388
7.14.3 队列消息的发送与接收 389
7.14.4 主题消息的发送与接收 392
第8章 Struts+EJB 3.0和JSF+EJB 3.0实战 397
8.1 系统需求 397
8.2 系统实现 398
8.2 系统实现 398
8.2.1 建立实体模型 399
8.2.2 建立持久化配置文件 404
8.2.3 建立会话Bean 405
8.2.4 Struts客户端 410
8.2.5 JSF客户端 431
8.2.6 创建EAR部署描述文件 452
8.2.7 使用Ant构建和部署程序 453
8.2.2 建立持久化配置文件 404
8.2.3 建立会话Bean 405
8.2.4 Struts客户端 410
8.2.5 JSF客户端 431
8.2.6 创建EAR部署描述文件 452
8.2.7 使用Ant构建和部署程序 453
第9章 项目实用知识 458
9.1 使用了第三方类库的企业应用 458
9.2 如何对EJB3进行调试 458
9.3 单元测试 464
9.4 在独立的Web服务器或J2SE中调用EJB 468
9.5 如何获取最新的JBoss版本 478
9.2 如何对EJB3进行调试 458
9.3 单元测试 464
9.4 在独立的Web服务器或J2SE中调用EJB 468
9.5 如何获取最新的JBoss版本 478
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7611263/viewspace-600906/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7611263/viewspace-600906/