Jboss EJB3.0 实例教程 传智播客(www.itcast.cn)软件培训参考教材
版权所有:黎活明
http://bbs.elecfans.com/ 电子技术论坛 http://www.elecfans.com 电子发烧友
Jboss EJB3.0 实例教程 传智播客(www.itcast.cn)软件培训参考教材
版权所有:黎活明
第一章 前言..........................................................................................................................................................................5
1.1 本教程适合人群 .........................................................................................................................................................5
1.2 联系作者.....................................................................................................................................................................5
1.3 《EJB3.0 实例教程》官方 MSN 群..........................................................................................................................5
1.4 版权声明.....................................................................................................................................................................6
第二章 运行环境配置..........................................................................................................................................................6
2.1 下载与安装.................................................................................................................................................................6
2.2 运行一个 EJB3 例子 ..................................................................................................................................................8
2.3 熟悉 JBOSS 的目录结构 .............................................................................................................................................8
2.4 JBOSS 中的部署...........................................................................................................................................................9
2.5 在单独的 TOMCAT 或 J2SE 中调用 EJB...................................................................................................................9
2.6 发布在 JBOSS 中的 WEB 应用调用 EJB...............................................................................................................10
2.7 如何获取最新的内嵌 EJB3 的 JBOSS 版本...........................................................................................................10
第三章 基础知识学习........................................................................................................................................................12
3.1 ENTERPRICE JAVABEANS(EJB)的概念.......................................................................................................................12
3.2 一个基于 STRUTS+EJB3.0 应用的体系结构图.......................................................................................................14
3.3 如何进行 EJB 打包 ..................................................................................................................................................14
3.4 如何进行 WEB 应用打包 ........................................................................................................................................15
3.5 如何进行企业应用打包 ...........................................................................................................................................16
3.6 使用了第三方类库的 EJB 如何打包.......................................................................................................................17
3.7 共用了第三方类库的 J2EE 应用如何打包.............................................................................................................18
3.8 如何恢复本书配套例子的开发环境 .......................................................................................................................19
3.9 如何对 EJB3 进行调试 ............................................................................................................................................24
3.10 单元测试.................................................................................................................................................................32
第四章 会话 BEAN(SESSION BEAN)............................................................................................................................36
4.1 STATELESS SESSION BEANS(无状态 BEAN)开发 ..................................................................................................38
4.1.1
开发只存在
Remote
接口的无状态
Session Bean...........................................................................................39
4.1.2
开发只存在
Local
接口的无状态
Session Bean..............................................................................................42
4.1.3
开发存在
Remote
与
Local
接口的无状态
Session Bean................................................................................43
4.2 STATEFUL SESSION BEANS(有状态 BEAN)开发....................................................................................................46
4.3 STATELESS SESSION BEAN 与 STATEFUL SESSION BEAN 的区别 ...............................................................................48
4.4 如何改变 SESSION BEAN 的 JNDI 名称 ..................................................................................................................48
4.5 SESSION BEAN 的生命周期 .......................................................................................................................................50
4.6 拦截器(INTERCEPTOR) ..............................................................................................................................................52
4.7 依赖注入(DEPENDENCY INJECTION)..........................................................................................................................56
4.8 定时服务(TIMER SERVICE) .......................................................................................................................................60
4.9 安全服务(SECURITY SERVICE) ..................................................................................................................................62
4.9.1
自定义安全域
...................................................................................................................................................72
第五章 JMS(JAVA MESSAGE SERVICE) ...............................................................................................................74
5.1 消息驱动 BEAN (MESSAGE DRIVEN BEAN)..............................................................................................................77
5.1.1 Queue
消息的发送与接收
(PTP
消息传递模型
).............................................................................................77
http://bbs.elecfans.com/ 电子技术论坛 http://www.elecfans.com 电子发烧友
Jboss EJB3.0 实例教程 传智播客(www.itcast.cn)软件培训参考教材
版权所有:黎活明
5.1.2 Topic
消息的发送与接收
(Pub/sub
消息传递模型
) ........................................................................................82
第六章 实体 BEAN(ENTITY BEAN)..............................................................................................................................87
6.1 持久化 PERSISTENCE.XML 配置文件 ........................................................................................................................88
6.2 JBOSS 数据源的配置.................................................................................................................................................88
6.2.1 MySql
数据源的配置
........................................................................................................................................89
6.2.2 Ms Sql Server2000
数据源的配置
....................................................................................................................89
6.2.3 Oralce9i
数据源的配置
....................................................................................................................................90
6.3 实体 BEAN 发布前的准备工作................................................................................................................................91
6.4 单表映射的实体 BEAN.............................................................................................................................................91
6.5 属性映射.................................................................................................................................................................100
6.6 持久化实体管理器 ENTITYMANAGER...................................................................................................................105
6.6.1 Entity
获取
find()
或
getReference().................................................................................................................105
6.6.2
添加
persist()..................................................................................................................................................105
6.6.3
更新实体
.........................................................................................................................................................106
6.6.4
合并
Merge()...................................................................................................................................................106
6.6.5
删除
Remove() ................................................................................................................................................107
6.6.6
执行
JPQL
操作
createQuery()......................................................................................................................107
6.6.7
执行
SQL
操作
createNativeQuery()..............................................................................................................108
6.6.8
刷新实体
refresh()..........................................................................................................................................108
6.6.9
检测实体当前是否被管理中
contains()........................................................................................................109
6.6.10
分离所有当前正在被管理的实体
clear()...................................................................................................109
6.6.11
将实体的改变立刻刷新到数据库中
flush() ...............................................................................................109
6.6.12
改变实体管理器的
Flush
模式
setFlushMode().........................................................................................110
6.6.13
获取持久化实现者的引用
getDelegate( )................................................................................................... 111
6.7 关系/对象映射........................................................................................................................................................111
6.7.1
映射的表名或列名与数据库保留字同名时的处理
..................................................................................... 111
6.7.2
一对多及多对一映射
..................................................................................................................................... 111
6.7.3
一对一映射
.....................................................................................................................................................119
6.7.4
多对多映射
.....................................................................................................................................................126
6.8 使用参数查询.........................................................................................................................................................132
6.8.1
命名参数查询
.................................................................................................................................................132
6.8.2
位置参数查询
.................................................................................................................................................132
6.8.3 Date
参数
.........................................................................................................................................................133
6.9 JPQL 语言 ...............................................................................................................................................................133
6.9.1
大小写敏感性
(Case Sensitivity).....................................................................................................................145
6.9.2
命名查询
.........................................................................................................................................................145
6.9.3
排序
(order by) ................................................................................................................................................145
6.9.4
查询部分属性
.................................................................................................................................................146
6.9.5
查询中使用构造器
(Constructor)...................................................................................................................147
6.9.6
聚合查询
(Aggregation)..................................................................................................................................148
6.9.7
关联
(join)........................................................................................................................................................150
6.9.8
排除相同的记录
DISTINCT ..........................................................................................................................153
6.9.9
比较
Entity......................................................................................................................................................154
6.9.10
批量更新
(Batch Update)..............................................................................................................................155
http://bbs.elecfans.com/ 电子技术论坛 http://www.elecfans.com 电子发烧友
Jboss EJB3.0 实例教程 传智播客(www.itcast.cn)软件培训参考教材
版权所有:黎活明
6.9.11
批量删除
(Batch Remove).............................................................................................................................155
6.9.12
使用操作符
NOT..........................................................................................................................................155
6.9.13
使用操作符
BETWEEN ...............................................................................................................................156
6.9.14
使用操作符
IN .............................................................................................................................................157
6.9.15
使用操作符
LIKE.........................................................................................................................................157
6.9.16
使用操作符
IS NULL...................................................................................................................................158
6.9.17
使用操作符
IS EMPTY ................................................................................................................................159
6.9.18
使用操作符
EXISTS.....................................................................................................................................160
6.9.19
字符串函数
..................................................................................................................................................161
6.9.20
计算函数
......................................................................................................................................................162
6.9.21
子查询
..........................................................................................................................................................163
6.9.22
结果集分页
..................................................................................................................................................163
6.10 调用存储过程.......................................................................................................................................................165
6.10.1
调用无返回值的存储过程
..........................................................................................................................165
6.10.2
调用返回单值的存储过程
..........................................................................................................................166
6.10.3
调用返回表全部列的存储过程
..................................................................................................................167
6.10.4
调用返回部分列的存储过程
......................................................................................................................167
6.11 事务管理服务 .......................................................................................................................................................168
6.12 ENTITY 的生命周期和状态...................................................................................................................................173
6.12.1
生命周期回调事件
......................................................................................................................................173
6.12.2
在外部类中实现回调
..................................................................................................................................175
6.12.3
在
Entity
类中实现回调
...............................................................................................................................180
6.13 复合主键(COMPOSITE PRIMARY KEY)..................................................................................................................181
6.14 实体继承...............................................................................................................................................................189
6.14.1
每个类分层结构一张表
(table per class hierarchy)....................................................................................190
6.14.2
每个子类一张表
(table per subclass)...........................................................................................................196
6.14.3
每个具体类一张表
(table per concrete class)..............................................................................................199
第七章 WEB 服务(WEB SERVICE).............................................................................................................................204
7.1 WEB SERVICE 的创建...............................................................................................................................................204
7.2 WEB SERVICE 的客户端调用...................................................................................................................................208
7.2.1
用
java
语言调用
Web Service .......................................................................................................................208
7.2.2
用
asp
调用
Web Service.................................................................................................................................211
第八章 使用 EJB3.0 构建轻量级应用框架 ...................................................................................................................212
8.1 在 WEB 中使用 EJB3.0 框架.................................................................................................................................212
8.1.1
如何使用
Session Bean ..................................................................................................................................213
8.1.2
如何使用
Message Driven Bean ....................................................................................................................215
8.1.3
如何使用依赖注入
(dependency injection) ....................................................................................................216
8.1.4
如何使用
Entity Bean.....................................................................................................................................217
http://bbs.elecfans.com/ 电子技术论坛 http://www.elecfans.com 电子发烧友
Jboss EJB3.0 实例教程 传智播客(www.itcast.cn)软件培训参考教材
版权所有:黎活明
第一章 前言
期待已久的 EJB3.0 最终规范已经发布了。虽然 EJB3.0 最终规范出来了一段时间,但对 EJB3.0 的应用还停留在介
绍之中,应用实例更是少之又少,所以作者拟写本书,以简单的实例展现 EJB3.0 的开发过程,希望对大家有所帮
助。
EJB3 最激动人心的是 POJO 编程模型,我想对开发人员的影响将是非常大的,因为他降低了开发人员编写 EJB 的
要求。EJB3 的 bean 类将更像常规的 Java bean。不要求像过去那样实现特殊的回调界面或者扩展 EJB 类。所以它
将使 EJB 的开发更像常规的 Java 开发。从作者几个 EJB3.0 项目的开发情况来看,除了第一个项目开发周期相对
有些长之外(因为开发人员之前尚未掌握 EJB3.0,相当于边学边用),后面的项目从开发周期到以后的维护时间都
明显优于 JDBC+java bean 或 sprint+hibernate 的项目,软件在模块划分上更清晰,业务模块重用方面也有所提高(多
种客户端 J2ME,Web,Wap 重用业务对象),数据库移植性方面非常棒,只需修改一下数据源就很容易切换数据
库。呵呵,怎么样,心动了吧?心动不如行动,赶快说声 HelloWorld 吧。
虽然使用 EJB3 做项目非常好,但如果你的团队里没有一个对实体 Bean 熟悉的人,最好先熟悉完了再开展项目,
否则将会给项目带有巨大的性能问题。
作者对一些新的概念和知识理解也难免有误,有些概念和语义把握的不是很准,希望在这方面有经验和了解的朋
友批评指正,欢迎多提意见。
因为 JBOSS EJB3.0 产品常未成熟,本教程随着新产品的推出将有所改动,请密切关注!
1.1 本教程适合人群
本教程适合具有 Java 语言基础的 EJB 初学者。不需要学习 EJB2.x 也可以直接学习 EJB3.0。虽然 EJB3 的知识
点有很多,但实用的知识点有 7 天的学习时间就足够。作者周未为企业提供培训服务,个人需要培训的话就参加
北京传智播客(www.itcast.cn)的 EJB3 培训班吧,作者定期到培训班讲课。
1.2 联系作者
黎活明,广东佛山人,毕业于中国农业大学,一直从事于 B/S 系统架构工作,目前就职于惠利至易科技技术/运营
总监,北京传智播客“专家课堂”特约讲师。
电子邮件:lihuoming@sohu.com
手机:13671323507 (谢绝保险推销)
1.3 《EJB3.0 实例教程》官方 MSN 群
MSN 群账号:group22723@xiaoi.com ,加入该群即可与大家一起交流 ejb3.x 的学习经验,了解 ejb 技术的最新
发展情况等。如果您想参加相关面授培训,请与传智播客公司联系,网址:www.itcast.cn
http://bbs.elecfans.com/ 电子技术论坛 http://www.elecfans.com 电子发烧友
- 1
- 2
前往页