Enterprise Java Bean 程序设计实例详解

Enterprise Java Bean 程序设计实例详解
作 者: 沈建男
出版社: 中国铁道出版社
丛编项: 开发者说系列丛书 Java专家系列
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: JavaBeans
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Enterprise Java Bean 程序设计实例详解》作者简介

内容简介

本书主要是针对Sun 公司的Enterprise Java Bean 2.0版本做介绍,详细说明整个Enterprise Java Bean的基本结构,以一个章节说明一种Enterprise bean定义的方式,而且都在接下来的章节中实际地举了一个完整的例子来说明它们的应用和运行方式。虽然是以EJB 2.0为主,不过本书会针对1.1和2.0版不同的地方加以说明,尤其是改变最多的container-managed persistence的entity bean和新增的Message-driven Bean,除了新的结构外,两者之间运行方式的不同处都会在完整的例子中说明,另外对还未正式发行的EJB 2.1部分新增功能也会适时地加以说明。书中所举的例子都是以 Sun公司的应用程序服务器——J2EE Server和Cloudscape数据库作为设计和执行Enterprise Java Bean的环境。Sun公司所开发的J2EE Server非常适合于在EJB实现的练习上使用,而且它可以免费从Sun公司的网站(http://java.sun.com)下载。至于搭配的web应用程序则是以html网页搭配Java Server Page作为主要的服务器端程序语言来执行Enterprise Java Bean的请求。不过,在第16章仍会举Java Application和Servlet的例子来说明如何请求Enterprise Java Bean的服务。限于篇幅,本书并不对Java Server Page做介绍,但是所用到的JSP语法除了调用Enterprise Java Bean的程序逻辑都包装在Java Bean外,其余都非常的简单;读者如果对JSP的语法不是很清楚的话可以引用JSP相关书籍的说明,特别是jsp:useBean的指令卷标。以下先对各章节的主要内容做概略性的介绍。

图书目录

第1章 简介 1

1-1 J2EE结构 2

1-1-1 Java Servlet 3

1-1-2 Enterprise Java Bean简介 6

第2章 Entity Bean——container-managed persistence 21

2-1 Remote home interface/Local home interface 25

2-2 Remote interface/Local interface 28

2-3 Bean class 30

2-3-1 javax.ejb.EntityBean interface内7个默认的回调方法 32

2-3-2 cmp和cmr字段的调用方法 33

2-3-3 ejbCreate 和ejbPostCreate 方法 35

2-3-4 business和ejbHome 方法 36

2-4 Entity bean和表之间的对应关系 37

2-5 Primary key class 39

2-5-1 单一primary key 39

2-5-2 复合key 39

2-6 Bean实例的生命周期 Lifecycle 40

2-7 Callback方法说明 42

2-7-1 setEntityContext EntityContext ctx 42

2-7-2 unsetEntityContext

43

2-7-3 ejbCreate ... 44

2-7-4 ejbPostCreate ... 45

2-7-5 ejbActivate

45

2-7-6 ejbPassivate

46

2-7-7 ejbLoad 和ejbStore

47

2-7-8 ejbRemove

48

2-7-9 ejbFindByPrimaryKey ... 和ejbFind ... 49

2-7-10 ejbSelect ... 50

2-7-11 ejbHome ... 51

2-8 EntityContext 52

第3章 例子:会员登录 57

3-1 系统流程图 58

3-2 Entity Bean例子程序 59

3-2-1 Remote home interface 59

3-2-2 Remote interface 60

3-2-3 Bean class 61

3-2-4 LoginPassword(产生密码) 63

3-3 J2EE Server环境设置 64

3-3-1 下载j2sdk和j2sdkee 64

3-3-2 设置JAVA_HOME环境变量 64

3-3-3 设置J2EE_HOME环境变量 64

3-3-4 设置CLASSPATH 64

3-3-5 编译例子的java文件 64

3-3-6 Cloudview 65

3-4 建立UserExampleDB数据库和UserTBL表 66

3-4-1 建立Database 67

3-4-2 建立Table 68

3-4-3 建立字段 69

3-4-4 建立Key 70

3-5 设计Web应用程序 71

3-5-1 HTML和JSP例子程序 71

3-5-2 启动server 84

3-6 设计Entity Bean 85

3-7 Container-managed persistence 1.0 101

3-7-1 cmp 1.0和cmp 2.0的差异点 101

3-7-2 Entity Bean和表之间的对应关系 102

3-7-3 UserEntityBean的cmp 1.0运行方式 103

3-7-4 设计cmp 1.0的UserEntityBean例子 105

第4章 CMP 2.0的Relationships 109

4-1 关联 relationships 的设计描述文档设置 112

4-2 关联的方式 115

4-3 指定相互关联的Bean 117

4-4 关联字段的调用 118

4-5 关联的设置和调用方式说明 120

4-5-1 One-to-one的双向关联 120

4-5-2 One-to-one的单向关联 122

4-5-3 One-to-many的双向关联 124

4-5-4 One-to-many的单向关联 131

4-5-5 Many-to-one的单向关联 136

4-5-6 Many-to-many的双向关联 139

4-5-7 Many-to-many的单向关联 145

第5章 EJB QL——EJB Query Language 151

5-1 FROM 154

5-2 WHERE 157

5-2-1 指定输入参数 158

5-2-2 BETWEEN和NOT BETWEEN 158

5-2-3 IN和NOT IN 159

5-2-4 LIKE和NOT LIKE 159

5-2-5 IS NULL和IS NOT NULL 160

5-2-6 IS EMPTY和 IS NOT EMPTY 161

5-2-7 MEMBER OF和NOT MEMBER OF 161

5-2-8 内建方法Function 162

5-3 SELECT 162

5-4 ORDER BY 165

第6章 例子:学生注册 167

6-1 系统流程图 169

6-2 Entity Bean之间的关联 170

6-3 表之间的关联 170

6-4 建立数据库和表 171

6-5 例子程序代码 172

6-5-1 Entity Bean程序代码 173

6-5-2 Java Bean程序代码 188

6-5-3 JSP和Html网页程序代码 199

6-6 设计应用程序 208

6-6-1 设计Entity Bean 209

6-6-2 设计Web Component 215

第7章 Entity Bean——bean-managed persistence 219

7-1 Remote home interface/Local home interface 220

7-2 Remote interface/Local interface 224

7-3 Bean class 225

7-4 Primary key class 229

7-4-1 单一primary key 230

7-4-2 复合key 230

7-5 Bean的生命周期 Lifecycle 231

7-6 Callback methods 233

7-6-1 setEntityContext EntityContext ctx 233

7-6-2 unsetEntityContext

235

7-6-3 ejbCreate ... 236

7-6-4 ejbPostCreate ... 237

7-6-5 ejbActivate

237

7-6-6 ejbPassivate

238

7-6-7 ejbLoad 和ejbStore

239

7-6-8 ejbRemove

240

7-6-9 ejbFindByPrimaryKey ... 和ejbFind ... 241

7-6-10 ejbHome ... 244

7-7 EntityContext 244

7-8 Transaction 的回退-Roll Back 246

7-9 更改第3章的UserEntityBean为bmp的entity bean 248

第8章 例子:订购单 259

8-1 系统流程图 262

8-2 建立表 262

8-3 表的对应关系 263

8-4 OrderEntityBean 266

8-4-1 Home interface 266

8-4-2 Remote interface 267

8-4-3 Bean class 268

8-4-4 获取数据库连接(Database connection)的时机 277

8-4-5 表完整性(Integrity)的维护 278

8-4-6 数据域变量和表记录一致性(Consistency)的维护 279

8-4-7 PreparedStatement 281

8-5 ProductEntityBean 281

8-5-1 Home interface 281

8-5-2 Remote interface 282

8-5-3 Bean class 283

8-5-4 JavaBean 285

8-6 设计OrderEntityBean. ProductEntityBean和 Web Component 290

8-6-1 源文件和设计的路径 290

8-6-2 设计组件的JNDI Name 292

8-6-3 Entity Bean 292

8-6-4 Web Component 294

第9章 Session Bean——stateful session bean 295

9-1 Remote或Local home interface 298

9-2 Remote或Local interface 302

9-3 Bean class 305

9-3-1 Conversational state 307

9-3-2 Primary key 308

9-4 Stateful session bean的生命周期(Lifecycle) 309

9-5 Callback方法说明 311

9-5-1 setSessionContext SessionContext ctx 311

9-5-2 ejbCreate ... 311

9-5-3 ejbPassivate

312

9-5-4 ejbActivate

313

9-5-5 ejbRemove

313

9-6 Transaction 314

9-6-1 Container-managed transaction 316

9-6-2 Bean-managed transaction 316

9-6-3 Container和Bean-managed transaction中的方法调用限制 320

9-6-4 回退(Roll back)Container-managed transaction 320

9-6-5 回退(Roll back)Bean-managed transaction 321

9-6-6 javax.ejb.SessionSynchronization 接口 321

9-7 SessionContext 324

第10章 例子:订购单——客户订购 327

10-1 系统流程图 330

10-2 Entity Bean之间的关联 331

10-3 建立数据库和表 331

10-4 表的对应关系 332

10-5 OrderSession Bean 340

10-5-1 Local home interface 340

10-5-2 Local interface 340

10-5-3 Bean class 341

10-6 设计Entity Beans. OrderSession Bean和 Web Component 353

10-6-1 源文件和设计的路径 353

10-6-2 设计组件的JNDI Name 355

10-6-3 Entity Bean 356

10-6-4 Session Bean 361

10-6-5 Web Component 363

10-6-6 Deploy 365

第11章 Session Bean——stateless session bean 367

11-1 Remote或Local home interface 369

11-2 Remote或Local interface 370

11-3 Bean class 371

11-3-1 共享变量 373

11-3-2 session object 374

11-4 Stateless Session Bean的生命周期(Lifecycle) 375

11-5 callback methods 376

11-5-1 setSessionContext SessionContext ctx 376

11-5-2 ejbCreate

377

11-5-3 ejbRemove

377

11-5-4 business_method

378

11-6 SessionContext 379

第12章 例子:订购单——订购单管理 383

12-1 系统流程图 386

12-2 Entity Bean之间的关联 386

12-3 建立数据库和表 387

12-4 表的对应关系 388

12-5 AdminSession Bean 398

12-5-1 Local home interface 398

12-5-2 Local interface 398

12-5-3 Bean class 399

12-6 设计Entity Beans. AdminSession Bean. OrderSession Bean和

Web Component 408

12-6-1 源文件和设计的路径 408

12-6-2 设计组件的JNDI Name 410

12-6-3 Entity Bean 411

12-6-4 Session Bean 416

12-6-5 Web Component 419

12-6-6 Deploy 420

第13章 Message-driven Bean 421

13-1 Java Message Service简介 422

13-1-1 Connection factory 424

13-1-2 Destination 424

13-1-3 Connection 426

13-1-4 Session 426

13-1-5 Message producer和consumer 427

13-1-6 Message 428

13-2 JMS例子 431

13-2-1 Point-to-Point例子 431

13-2-2 Publish-and-Subscribe例子 436

13-3 Message-driven Bean class 439

13-4 Message-driven Bean的生命周期(Lifecycle) 441

13-5 callback methods 443

13-5-1 setMessageDrivenContext MessageDrivenContext mdctx 443

13-5-2 ejbCreate

443

13-5-3 ejbRemove

444

13-5-4 message listener方法 444

13-6 MessageDrivenContext 445

第14章 例子:新增产品信息 447

14-1 系统结构图 448

14-2 建立数据库和表 448

14-3 Message-driven Bean-ProductMDB 449

14-4 客户端应用程序(Queue的sender)——AddProduct 451

14-5 设计Entity Beans和ProductMDB 453

14-5-1 源文件存放路径 453

14-5-2 设计组件的JNDI Name 454

14-6 Entity Bean 454

14-6-1 Message-driven Bean 455

14-6-2 Deploy 458

14-6-3 执行客户端程序 458

第15章 Transaction属性和Isolation Levels 459

15-1 Transaction Context 460

15-2 Container-managed transaction的属性 461

15-2-1 NotSupported 461

15-2-2 Required 462

15-2-3 Supports 463

15-2-4 RequiresNew 464

15-2-5 Mandatory 465

15-2-6 Never 466

15-3 Isolation Levels 467

15-3-1 TRANSACTION_READ_COMMITTED 470

15-3-2 TRANSACTION_READ_UNCOMMITTED 470

15-3-3 TRANSACTION_REPEATABLE_READ 470

15-3-4 TRANSACTION_SERIALIZABLE 470

第16章 EJB的相关说明 473

16-1 环境变量(environment entries) 474

16-2 non-reentrant和reentrant 475

16-3 不同的客户端程序 476

16-3-1 Java应用程序——Application Client 477

16-3-2 Servlet 481

16-4 EJB的设计描述文档(Deployment Descriptor) 485

附录A javax.ejb和javax.transaction package 493

A-1 javax.ejb Interface继承图 494

A-2 javax.transaction Interface继承图 495

A-3 javax.ejb Exception继承图 495

A-4 javax.transaction Exception继承图 496

A-5 javax.ejb Interface类定义 496

A-5-1 javax.ejb.EJBContext 496

A-5-2 javax.ejb.EntityContext 497

A-5-3 javax.ejb.MessageDrivenContext 497

A-5-4 javax.ejb.SessionContext 497

A-5-5 javax.ejb.EJBLocalHome 498

A-5-6 javax.ejb.EJBLocalObject 498

A-5-7 javax.ejb.EJBMetaData 498

A-5-8 javax.ejb.EJBHome 498

A-5-9 javax.ejb.EJBObject 499

A-5-10 javax.ejb.EnterpriseBean 499

A-5-11 javax.ejb.EntityBean 499

A-5-12 javax.ejb.MessageDrivenBean 500

A-5-13 javax.ejb.SessionBean 500

A-5-14 javax.ejb.Handle 501

A-5-15 javax.ejb.HomeHandle 501

A-5-16 javax.ejb.TimerHandle 501

A-5-17 javax.ejb.SessionSynchronization 501

A-5-18 javax.ejb.TimerObject 501

A-5-19 javax.ejb.Timer 502

A-5-20 javax.ejb.TimerService 502

A-6 javax.transaction Interface类定义 503

A-6-1 javax.transaction.Status 503

A-6-2 javax.transaction.Synchronization 503

A-6-3 javax.transaction.Transaction 503

A-6-4 javax.transaction.TransactionManager 504

A-6-5 javax.transaction.UserTransaction 505

附录B Object interaction diagram 507

B-1 CMP Entity Bean 508

B-1-1 建立一个entity bean实例 508

B-1-2 Passivating entity bean实例 508

B-1-3 Activating entity bean实例 508

B-1-4 调用business方法 509

B-1-5 删除一个entity bean实例 509

B-1-6 调用finder方法 509

B-1-7 新增bean实例至instance pool 510

B-1-8 从instance pool删除bean实例 510

B-2 BMP Entity Bean 510

B-2-1 建立一个entity bean实例 510

B-2-2 Passivating entity bean实例 511

B-2-3 Activating entity bean实例 511

B-2-4 调用business方法 511

B-2-5 删除一个entity bean实例 512

B-2-6 调用finder方法 512

B-2-7 新增bean实例至instance pool 512

B-2-8 从instance pool删除bean实例 513

B-3 Stateful Session Bean 513

B-3-1 建立一个session bean实例 513

B-3-2 客户端调用business方法 513

B-3-3 Passivating session bean实例 514

B-3-4 Activating session bean实例 514

B-3-5 删除一个session bean实例 514

B-3-6 实现javax.ejb.Synchronization接口的

container-managed transaction 515

B-4 Stateless Session Bean 515

B-4-1 客户端调用create 方法 515

B-4-2 客户端调用business方法 516

B-4-3 EJB Container新增session bean实例至ready pool 516

B-4-4 EJB Container从ready pool删除一个session bean实例 516

B-4-5 客户端调用remove 方法 517

B-5 Message-driven Bean 517

B-5-1 EJB Container新增bean实例至ready pool 517

B-5-2 EJB Container从ready pool中删除bean实例 517

B-5-3 调用message listener方法 518

附录C Message Selector字符串语法 519