Jboss EJB3.0 实例教程
版权所有:黎活明
Jboss EJB3.0 实例教程
版权所有:黎活明
第一章 前言 .........................................................................................................................................................................5
1.1 本教程适合人群.........................................................................................................................................................5
1.2 联系作者.....................................................................................................................................................................5
第二章 运行环境配置 .........................................................................................................................................................5
2.1 下载与安装.................................................................................................................................................................5
2.2 运行一个 EJB3 例子 ................................................................................................................................................10
2.3 在独立的 TOMCAT 中调用 EJB...............................................................................................................................10
2.4 JBOSS 中的 WEB 应用调用 EJB.............................................................................................................................11
第三章 基础知识学习 .......................................................................................................................................................11
3.1 熟悉 JBOSS 的目录结构...........................................................................................................................................11
3.2 JBOSS 中的部署 ........................................................................................................................................................12
3.3 如何进行 EJB 打包 ..................................................................................................................................................12
3.4 如何进行 WEB 应用打包 ........................................................................................................................................13
3.5 使用了第三方类库的 EJB 如何打包 ......................................................................................................................14
3.6 共用了第三方类库的 J2EE 项目如何打包.............................................................................................................15
3.7 如何恢复本书配套例子的开发环境.......................................................................................................................16
第四章 会话 BEAN(SESSION BEAN)............................................................................................................................21
4.1 STATELESS SESSION BEANS(无状态 BEAN)开发 ..................................................................................................21
4.1.1
开发只存在
Remote
接口的无状态
Session Bean..........................................................................................21
4.1.2
开发只存在
Local
接口的无状态
Session Bean.............................................................................................24
4.1.3
开发存在
Remote
与
Local
接口的无状态
Session Bean...............................................................................26
4.2 STATEFUL SESSION BEANS(有状态 BEAN)开发....................................................................................................28
4.3 STATELESS SESSION BEAN 与 STATEFUL SESSION BEAN 的区别...............................................................................30
4.4 如何改变 SESSION BEAN 的 JNDI 名称..................................................................................................................30
4.5 SESSION BEAN 的生命周期 .......................................................................................................................................31
4.6 拦截器(INTERCEPTOR)..............................................................................................................................................34
4.7 依赖注入(DEPENDENCY INJECTION)..........................................................................................................................38
4.8 定时服务(TIMER SERVICE).......................................................................................................................................41
4.9 安全服务(SECURITY SERVICE)..................................................................................................................................43
4.9.1
自定义安全域
..................................................................................................................................................48
第五章 消息驱动 BEAN (MESSAGE DRIVEN BEAN)...............................................................................................50
第六章 实体 BEAN(ENTITY BEAN).............................................................................................................................53
6.1 实体 BEAN 的组成文件 PERSISTENCE.XML 配置.....................................................................................................53
6.2 JBOSS 数据源的配置.................................................................................................................................................54
6.2.1 MySql
数据源的配置
........................................................................................................................................54
6.2.2 Ms Sql Server2000
数据源的配置
....................................................................................................................55
6.3 实体 BEAN 发布前的准备工作................................................................................................................................55
6.4 单表映射的实体 BEAN.............................................................................................................................................55
6.5 持久化实体管理器 ENTITYMANAGER.....................................................................................................................61
6.5.1 Entity
获取
find()...............................................................................................................................................61
Jboss EJB3.0 实例教程
版权所有:黎活明
6.5.2
添加
persist()....................................................................................................................................................61
6.5.3
更新
Merge()....................................................................................................................................................61
6.5.4
删除
Remove()..................................................................................................................................................62
6.5.5
执行
EJB3 QL
操作
createQuery()..................................................................................................................62
6.6 关系/对象映射..........................................................................................................................................................63
6.6.1
映射的表名或列名与数据库保留字同名时的处理
.......................................................................................63
6.6.2
一对多及多对一映射
......................................................................................................................................63
6.6.3
一对一映射
......................................................................................................................................................70
6.6.4
多对多映射
......................................................................................................................................................77
6.7 使用参数查询...........................................................................................................................................................83
6.7.1
命名参数查询
..................................................................................................................................................83
6.7.2
位置参数查询
..................................................................................................................................................84
6.8 EJB3 QL 语言 ...........................................................................................................................................................84
6.8.1
大小写敏感性
(Case Sensitivity)......................................................................................................................95
6.8.2
排序
(order by)..................................................................................................................................................95
6.8.3
查询部分属性
..................................................................................................................................................96
6.8.4
查询中使用构造器
(Constructor).....................................................................................................................96
6.8.5
聚合查询
(Aggregation)....................................................................................................................................97
6.8.6
关联
(join).......................................................................................................................................................100
6.8.7
比较
Entity......................................................................................................................................................103
6.8.8
批量更新
(Batch Update)................................................................................................................................104
6.8.9
批量删除
(Batch Remove)...............................................................................................................................104
6.8.10
使用操作符
NOT.........................................................................................................................................105
6.8.11
使用操作符
BETWEEN...............................................................................................................................105
6.8.12
使用操作符
IN.............................................................................................................................................106
6.8.13
使用操作符
LIKE........................................................................................................................................106
6.8.14
使用操作符
IS NULL...................................................................................................................................107
6.8.15
使用操作符
IS EMPTY................................................................................................................................108
6.8.16
使用操作符
EXISTS.....................................................................................................................................109
6.8.17
字符串函数
..................................................................................................................................................110
6.8.18
计算函数
......................................................................................................................................................111
6.8.19
子查询
..........................................................................................................................................................112
6.9 事务管理服务.........................................................................................................................................................113
6.10 ENTITY 的生命周期和状态...................................................................................................................................117
6.11 复合主键(COMPOSITE PRIMARY KEY)..................................................................................................................117
第七章 WEB 服务(WEB SERVICE).............................................................................................................................125
7.1 WEB SERVICE 的创建 ..............................................................................................................................................125
7.2 WEB SERVICE 的客户端调用 ..................................................................................................................................130
7.2.1
用
java
语言调用
Web Service.......................................................................................................................130
7.2.2
用
asp
调用
Web Service................................................................................................................................135
第八章 使用 EJB3.0 构建轻量级应用框架 ...................................................................................................................136
8.1 在 WEB 中使用 EJB3.0 框架 ................................................................................................................................137
8.1.1
如何使用
Session Bean..................................................................................................................................138
Jboss EJB3.0 实例教程
版权所有:黎活明
8.1.2
如何使用
Message Driven Bean....................................................................................................................139
8.1.3
如何使用依赖注入
(dependency injection)....................................................................................................141
8.1.4
如何使用
Entity Bean.....................................................................................................................................141
Jboss EJB3.0 实例教程
版权所有:黎活明
第一章 前言
期待已久的 EJB3.0 最终规范已经发布了。虽然 EJB3.0 最终规范出来了一段时间,但对 EJB3.0 的应用还停留在介
绍之中,应用实例更是少之又少,所以作者拟写本书,以简单的实例展现 EJB3.0 的开发过程,希望对大家有所帮
助。
EJB3 最激动人心的是 POJO 编程模型,我想对开发人员的影响将是非常大的,因为他降低了开发人员编写 EJB 的
要求。EJB3 的 bean 类将更像常规的 Java bean。不要求像过去那样实现特殊的回调界面或者扩展 EJB 类。所以它
将使 EJB 的开发更像常规的 Java 开发。
作者对 EJB3.0 接触的时间很短,所以一些新的概念和知识理解也难免有误,有些概念和语义把握的不是很准,
希望在这方面有经验和了解的朋友批评指正,欢迎多提意见。
因为 JBOSS EJB3.0 产品常未成熟,本教程随着新产品的推出将有所改动,请密切关注!
1.1 本教程适合人群
本教程适合具有 Java 语言基础的 EJB 初学者。有读者来邮件问需不需要先学 EJB2.x,作者明确地告诉你不用
学了。随着 EJB3 的发展,EJB2.x 将会逐步成为历史。
1.2 联系作者
黎活明,广东佛山人,毕业于中国农业大学,一直从事于 B/S 系统架构工作,现任游易航空旅行网运营主管。
电子邮件:lihuoming@sohu.com
第二章 运行环境配置
2.1 下载与安装
1>下载安装 JDK5.0 http://java.sun.com/j2se/1.5.0/download.jsp
2>下载安装 eclipse3.1.x
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.1.2-200601181600/eclipse-SDK-3.1
.2-win32.zip
想使用中文的朋友可以下载中文语言包 NLpack1-eclipse-SDK-3.1.1a-win32.zip 和
NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip
http://download.eclipse.org/eclipse/downloads/drops/L-3.1.1_Language_Packs-200510051300/index.php
解压语言包,把 features 及 plugins 文件夹拷贝复盖 eclipse 安装目录下的 features 及 plugins 文件夹。如果汉化失
败,可能是你安装语言包之前运行过 eclipse,解决办法是:把 eclipse 安装目录下的 configuration 文件夹删除,从
eclipse 安装包中解压出 configuration 文件夹,把 configuration 文件夹拷贝到 eclipse 安装目录下。