第1章JDeveloper概述 1
22.1 BC4J数据标记库简介 60 1
目 录 1
第Ⅰ部分概 述 1
1.1 JDeveloper的过去、现在和未来 2
1.1.1 过去:产品的历史与起源 2
1.1.2 现在:JDeveloper的现状 3
1.1.3将来:远景展望 4
1.2.1 Java与XML 5
1.2 Java 业务组件 5
1.2.2 BC4J结构 6
1.2.3 BC4J组件 6
1.2.4 BC4J逻辑体系结构 8
1.2.5 使用BC4J 10
1.2.6 使用BC4J的方法 11
1.2.7用BC4J创建应用程序 13
1.3在JDeveloper 中创建应用程序代码 14
1.3.2 项目 15
1.3.3 JDeveloper 目录结构 15
1.3.1 工作空间 15
1.3.4 JDeveloper 中的文件管理 16
1.3.5 高级向导和低级向导 16
1.3.6 开发步骤 16
1.4 手练习:用JDeveloper 向导创建应用程序 17
1.4.1 创建工作空间和数据库连接 17
1.4.2创建BC4J项目 20
1.4.3创建Java应用程序 24
1 4.4 创建JSP项目 27
第2章集成开发环境 30
2.1 IDE概述 30
2.2 JDeveloper环境 32
2.2.1 IDE窗口 32
2.2.2 主要的工作区 36
2.2.3 向导和新建文件的对话框 66
2.2.4帮助系统 69
2.2.5软件配置管理 71
第3章 使用IDE工具创建BC4J应用程序 76
3.1 关于BC4J项目 76
3.2关于Java应用程序项目 77
3.3 关于JSP项目 77
3.4动手练习:手工创建BC4J项目 78
3.4.1 创建工作空间、项目和连接 78
3.4.2 创建实体对象和视图对象 81
3.4.3删除和创建关联 83
3.4.4创建视图链接 85
3.4.5创建应用程序模块 86
3.4.6测试应用程序 87
3.5 动手练习:手工创建一个主从关系的Java应用程序 89
3.5.1 创建Java应用项目 90
3.5.2创建应用程序的Location部分 91
3.5.3创建应用程序级的面板 96
3.5 4对应用程序的Location部分进行测试和修改 97
3.5.5创建应用程序的Department部分 98
3.5.6修改应用程序 101
3.6动手练习:手工创建JSP应用程序 103
3.6.1 建立项目并附加应用程序模块 104
3.6.2 添加数据源和数据标记 105
3.6.3修改显示内容 106
4.1.1优点 109
第4章JDeveloper环境中的Java语言 109
4.1 为什么使用Java 109
4.1.2缺点 111
4.1.3转换到Java 112
4.2面向对象的概念 113
4.2.1 处理和存储数据 114
4.2.2继承 115
4.3Java语言回顾 115
4.3.1 带注释的Java代码样例 115
4.3.2带注释的Box用法示例类 119
4.3.3 其他Java语言概念 121
4.4 动手练习:创建Java类文件 132
4.4.1创建工作空间和项目 132
4 4.2创建并测试Java类文件 133
第5章命名约定 137
5.1 使用命名约定的重要性 137
5.2 需要命名的对象类型 138
5.3 通用命名约定考虑的因素和准则 140
5.3.1 使用后缀表示类型 140
5.3.2考虑语言的能力 141
5.3.3注意区分大小写的问题 141
5.3.4使用字典中可用的单词 141
5.3.5 谨慎使用缩写 141
5.4 Java 中公认的命名约定 142
5.4.1 常量(最终变量) 142
5.4.2类 142
5.4.3类实例、异常、方法和变量 142
5.4.4 包 143
5.5 JDeveloper特有的命名约定 143
5.5.1 作空间 144
5.5.2项目 145
5.5.3类的源代码文件 145
5.5.4类库 145
5.5.7 Java业务组件 146
5.5.5 JClient数据模型 146
5.5.6连接 146
5.5.8 UI组件 148
5.5.9 Java应用程序文件 148
5.5.10 UML类图元素 148
5.5.11 其他组件 148
第6章代码调试 149
6.1概述 149
6.1.1 程序错误的类型 149
6.1.2 调试操作 152
6.2.1 使用常见的bug诊断技术 153
6.2.2测试并编辑连接 153
6.2 是否必须运行调试器 153
6.2.3 测试并编辑BC4J视图对象 154
6.2.4测试3C4J 应用程序模块 154
6.2.5显示消息 154
6.3 JDeveloper调试器 158
6.3.1 启动调试会话 158
6.3.2 Debug工具栏按钮 161
6.3.3 Debug菜单项 162
6.3.4控制程序的执行 162
6.3.5检查程序的数据值 166
6.4远程调试 167
6.5 Profiler 168
6.5.1 运行Profiler 168
6.5.2 Even Profiler 169
6.5.3执行Profiler 170
6.5.4MemoryProfiler 170
6.6动手练习:调试Java应用程序 171
6.6.1 创建一个有bug的应用程序 171
6.6.2准备调试会话 174
6.6.3控制程序的执行 175
6.6.4检查数据值 178
7.1 J2EE概述 182
7.1.1 J2ME 182
第7章J2EE体系结构与部署方案 182
7.1.2 J2S 183
7.1.3 J2EE 183
7.2JDeveloper 与J2EE 185
7.3 Java客户端体系结构 186
7.3.1 Java应用程序 186
7.3.2 applet 189
7.4 JSP体系结构 192
7.4.1 JSP技术概述 192
7.4.2 何处适合使用OC4J 195
7.5 动手练习:部署Java应用程序 196
7.5.1 准备一个简单的Java应用程序 196
7.5.2创建Java应用程序的JAR文件 197
7.5.3 安装及测试JAR文件 200
7.6.1创建applet 202
7.6创建与部署applet 202
7.6.2创建HTML文件 203
7.6.3部署applet 203
7.6.4 运行applet 204
7.7 动手练习:部署JSP应用程序 204
7.7.1 设置OC4J 205
7.7.2创建JSP应用程序 207
7.7.3部署JSP应用程序 208
第8章类建模器 212
8.1 背景 212
8.2系统开发中的UML 213
8.3JDeveloper类建模器概述 214
8.3.1 启动类图 214
8.3.2类图组件面板 215
8.3.3 Model菜单 220
8.3.4类图的可视属性 221
8.3.5发布类图 222
8.3.6导入类图 222
8.4 将类建模器用作分析工具 222
8.5 BC4J类建模器 222
8.5.1 绘制BC4J类图的类建模器窗口 223
8.5.2类图的行为 225
8.5.3 BC4J 联 225
8.6 动手练习:构建BC4J类图 226
8.7Java元素的类建模器 229
8.7.1 Java代码的生成 229
8.7.2 Java类 229
8.7.3接口 231
8.7.4实现 231
8.7.5包 231
8.7.6关联 234
8.8动手练习:构建Java类图 234
8.8.1创建类图 235
8.8.2在两个类之间建立关联 238
8.8.3 添加泛化关系 240
8.8.4 将泛化关系转变成接口 240
8.9用UML类建模器设计数据库 241
第Ⅱ部分Java业务组件 242
第9章Java业务组件 242
9.1 为什么使用Java业务组件 243
9.2实体对象和关联 244
9.3视图对象和视图链接 245
9.4应用程序模块 246
9.5 域 248
9.6 业务组件、Java和XML 248
9.7 动手练习:检查默认的BC4J层 249
9.7.1创建BC4J层 250
9.7.2浏览默认的实体对象和默认的关联 252
9.7.3 浏览默认的视图对象和默认的视图链接 255
9.7.4 浏览默认的应用程序模块 258
9.7.5测试默认的业务组件 260
第10章表示数据 263
10.1 实体属性 263
10.1.1 添加和删除属性 263
10.1.2 改变数据类型 264
10.1.3表示列约束 265
10.1.4同步实体对象和数据库 266
10.2表示外键关系 267
10.2.1创建关联 268
10.2.2组合 269
10.3一对一、一对多及多对多关系 269
10.3.1创建一对一的关联 270
10.3.2创建多对多的关联 270
10.4表示Oracle 对象类型 271
10.4.1 使用自定义域 272
10.4.2使用Oracle对象类型 272
10.5 动手练习:表示HR模式 273
10.5.1 创建工作空间和空项目 273
10.5.2创建默认的实体对象 273
10.5.3修改属性 274
10.5.4创建多对多的关联 275
10.5.5 创建默认的视图对象、视图链接及简单的应用程序模块 277
10.5.6测试实体对象层 280
第11章 业务组件建模和数据库表生成 283
11.1 类建模器和 BC4J 283
11.1.1 启动类模型 284
11.1.2 对新的实体对象建模 284
11.1.3建立新的关联模型 285
11.2生成数据库表 286
11.3生成表约束 287
11.3.1 生成主键、非空及单列值惟一约束 287
11.3.2生成外键约束 288
11.3.3实体约束 289
11.4 动手练习:试验类建模和数据库生成 290
11.4.1创建上作空间、项目和类模型 290
11.4.2 创建实体对象和关联 291
11.4.3 定义约束 293
11.4.4 生成表和约束 294
11.4.5 填充BONUSES表 295
12.1.1 实体对象类 297
12.1实体类概述 297
第12章添加业务规则 297
12.1.2实体定义类 298
12.1.4 生成实体对象类 299
12.2验证规则 299
12.1.3实体集合类 299
12.2.1CompareValidator 300
12.2.2 ListValidator 302
12.2.3 RangeValidator 303
12.2.4 MethodValidator 303
12.2.5验证何时失效 304
12.3 向源代码添加业务规则 305
12.3.1 MethodValidator与赋值方法中的业务逻辑 306
12.3.2使用域编码 307
12.4使用域添加业务逻辑 309
12.4.1 validate()方法 309
12.4.2验证域和列约束 310
12.5 validaleEntity()方法 311
12.6.1 添加验证规则 313
12.6动手练习:向HR业务模型添加简单的验证规则 313
12.6.2 强制域级的业务逻辑 314
12.6.3测试业务逻辑 315
12.7为实体属性添加默认值 316
12.7.1 静态默认值 316
12.7.2动态计算的默认值 317
12.7.3 SequenceImpl类和DBSequence域 317
12.8计算临时属性 318
12.9遍历关联 318
12.9.1 获得单一关联的实体 319
12.9.2获取多关联的实体 319
12.10使用鉴别列 320
12.11动手练习:细化HR业务模型 322
12.11.1 从数据库序列中生成一个属性 323
12.11.2计算属性 323
12.11.3添加遍历一对多关联的验证逻辑 325
12.11.4测试业务逻辑 327
13.1视图属性的类型 329
第13章使用查询 329
13.2缓存 330
13.2.1 如何填充持久视图属性 331
13.2.2 如何填充只使用SQL语句的属性 333
13.2.3如何设置派生于实体的属性和临时属性 334
13.2.4在实体对象中维护数据的优点 334
13.3 细化视图对象的查询 337
13.3.1修改WHERE语句和ORDER BY语句 337
13.3.2专家模式 338
13.4 动手练习:为HR创建视图对象 339
13.4.1 删除默认的视图对象层 341
13.4.2规划视图对象 341
13.4.3创建简单的视图对象 343
13.4.4创建只使用SQL语句的视图对象 344
13.4.5基于两个实体对象创建视图对象 345
13.4.6使用专家模式创建基于实体对象的视图对象 348
13.4.7测试视图对象 350
13.5 表示查询结果集之间的关系 352
13.5.1视图链接SQL 352
13.5.2创建视图链接的影响 354
13.5.3 实体对象和视图链接访问方法 354
13.6视图链接的方向和基数 356
13.7 数据模型 357
13.7.1 详细视图用例 358
13.7.2嵌套应用程序模块 358
13.8多态视图对象 359
13.9 动手练习:为HR模式创建视图链接和应用程序模块 360
13.9.1 规划数据模型 360
13.9.2创建一对多的视图链接 362
13.9.3创建多对多的双向视图链接 364
13.9.4 创建并测试CareerPathListerModule 365
13.9.5 创建并测试AccountantPromotionModule 368
第14章运行时处理查询 370
14.1视图类简介 370
14.1.1视图对象类 370
14.1.2视图记录类 371
14.1.3生成视图类 371
14.3接口、实现类和导出方法 372
14.2应用程序模块类 372
14.4立用程序模块和视图用例的实例化 374
14.4.1 createRootApplicationModule()方法 375
14.4.2 findApplicationModule()方法 375
14.4.3 findViewObject()方法 375
14.5定位结果集 375
14.5.1 遍历查询结果集 376
14.5.2 first()、1ast()和previous() 376
14.5.3行关键字 376
14.6动手练习:创建简单的批处理客户端 378
14.6.1 创建视图记录类与接口 379
14.6.2为AccountantPromotionClient创建项目 380
14.6.3向AccountantPromotionClient中添加代码 381
14.6.5 向 CareerPathLister中添加代码 383
14.6.4为CareerPathLister创建项目 383
14.7操纵数据 386
14.7.1 读取及修改属性值 386
14.7.2创建与删除记录 387
14.8遍历视图链接 387
14.8.1 通过数据模型遍历视图链接 388
14.8.2通过访问方法遍历视图链接 388
14.8.3 数据模型与访问方法 388
14.9在运行时改变视图用例的WHERE子句 389
14.9.2参数化的WHERE子句 389
14.9.1使用sctWhereClause() 389
14.9.3抽象视图对象 390
14.10动手练习:遍历视图链接并修改数据 392
14.10.1 创建并导出服务方法 393
14.1 0.2 细化AccountantPromotionClient 396
14.10.3细化CareerPathLister 398
14.10.4创建会计升职的哑客户端 400
14.11 在运行时改变数据模型 402
14.11.2创建只使用SQL语句的视图对象 403
14.11.1将预定义视图对象的用例添加到数据模型 403
14.11.3 创建基于实体对象的视图对象 404
14.11.4在运行时链接视图用例 404
14.12二级记录集迭代器 406
14.1 3优化查询缓存 407
14.13.1只向前模式 407
14.13.2范围 408
第15章 多事务管理 409
1 5.1 Transaction与DBTransaction接口 409
15.1.1 Transaction接口 409
15.1.2 DBTransaction接口 410
15.2变更的提交与回滚 410
15.2.1提交周期 410
15.3.1 悲观锁定机制 412
15.3.2乐观锁定机制 412
15.3锁定机制 412
15.2.2回滚周期 412
15.3.3显式锁定记录 413
15.3.4变更指示器 413
15.4动手练习:提交变更并定制提交周期 414
15.4.1 测试悲观锁定机制与乐观锁定机制 415
15.4.3尝试提交变更 417
15.4.2使用乐观锁定机制 417
15.4.4提供提交操作的报告 418
15.4.5 测试批处理客户端 419
15.4.6修改promoteAccountants()方法并提交数据 421
15.5应用程序模块池机制 421
15.5.1 创建应用程序模块池与SessionCookie 422
15.5.2将应用程序模块从池中检入及检出 423
15.5.3 无状态释放模式 425
15.5.4保留释放模式 426
15.5.5 有状态释放模式 426
15.5.6使应用程序模块实例过期 428
1 5.6连接池机制 429
16.1 J2EE容器 431
第16章部署业务组件 431
16.2.1 本地模式下的Java客户端 432
16.2 Java客户端的部署配置 432
16.2.2 远程模式下的Java客户端 433
16.2.3 Java客户端:本地模式与远程模式 433
16.3 JSP客户端的部署配置 434
16.3.1 Web模块模式下的JSP客户端 434
16.3.2 远程模式下的JSP客户端 434
16.3.3 JSP客户端:Web模块模式与远程模式 435
16.4 配置 435
16.4.1 配置的创建与编辑 436
16.4.2 用配置实例化应用程序模块 437
16.5 BC4J客户端体系结构 438
16.6 Web服务 440
16.7 动手练习:部署BC4J应用程序 442
16.7.1 在本地模式下部署CareerPathLister及其BC4J层 442
16.7.2 将CareerPathListerModulc部署为会话外观 445
16.7.3 在远程模式下部署CareerPathLister 448
16.7.4创建并使用Web服务 449
第Ⅲ部分 Java客户端应用程序 454
第17章Java客户端概述 454
17.1 JDeveloper中的Java应用程序和applet 455
17.2 Java客户端体系结构的策略 456
17.2.1 创建Java应用程序还是applet 456
17.2.2要使用多少独立的程序 457
17.2.3 创建多少个目录、工作空间和项目 457
17.2.4什么是BC4J和数据验证策略 457
17.2.5使用什么类型的容器布局 458
17.2.6要创建多少个包以及如何为它们命名 458
17.2.7其他问题 458
17.3 JClient体系结构 458
17.3.1 开发客户端数据模型 460
17.3.2将Swing组件绑定到BC4J 460
17.3.3绑定面板 460
17.4.1创建面板类 461
17.4动手练习:创建基本的JClient Java应用程序 461
17.4.2添加界面组件 463
17.5获得正确的信息 465
第18章用户界面组件 467
18.1组件面板 467
18.1.1 AWT 468
18.1.2 Code Snippet 469
18.1.3 JClien Control 470
18.1.4 Swing 471
18.1.5 Swing Container 474
18.2在JDeveloper中使用Swing组件 475
18.2.1使用Swing组件 475
18.2.2在程序中添加Swing组件 475
18.2.3 Swing组件的类别 476
18.2.4容器对象 476
18.2.5修改Swing组件 480
18.3将Swing组件绑定到BC4J 480
18.4定义事件 481
18.5动手练习:创建一个选项卡式用户界面应用程序 483
18.5.1创建BC4J项目 483
18.5.2创建Java应用程序项目 484
18.5.3 创建有3个选项卡的用户界面 485
18.6.1 创建和部署JavaBean 493
18.6动手练习:定制组件面板并创建JavaBean 493
18.6.2为JavaBean创建库 495
18.6.3 添加组件面板页面和自定义JavaBean 496
18.6.4测试自定义组件 498
第19章菜单和工具栏 502
19.1设计思路 502
19.1.2其他菜单功能 503
19.1.1 在菜单上放什么 503
19.1.3在工具栏上放什么 507
19.1.4其他工具栏特性 507
19.1.5 用户访问方法总结 508
19.2 JDeveloper 中的菜单和工具栏 508
19.2.1 菜单对象 509
19.2.2工具栏对象 510
19.3 动手练习:准备一个简单的应用程序 511
19.4.1 布置菜单元素 513
19.4动手练习:创建菜单 513
19.4.2设置菜单元素属性 515
19.4.3编写命令代码 517
19.5动手练习:创建弹出式菜单 520
19.5.1布置元素 521
19.5.2编写命令代码 521
19.6动手练习:创建工具栏 523
19.6.1 布置工具栏元素 524
19.6.2设置按钮属性 526
19.6.3编写按钮代码 528
第20章布局管理器 530
20.1 布局管理器概念 530
20.1.1布置用户界面 531
20.1.2指定布局管理器 532
20.1.3设置布局管理器属性 533
20.1.4 UI编辑器工具 533
20.1.5 JDeveloper中的布局管理器 534
20.2布局管理器概述 535
20.2.1 BorderLayout 535
20.2.2 BoxLayout2 537
20.2.3CardLayout 539
20.2.4 FlowLayout 540
20.2.5 GridBagLayout 541
20.2.6 GridLayout 547
20.2.7 null布局管理器 548
20.2.8 OverlayLayout2 550
20 2.9 PaneLayout 551
20.2.10 VerticalFlowLayout 553
20.2.11 XYLayout 554
20.2.12布局管理器的使用 555
20.3多布局 555
20.4动手练习:使用布局 557
20.4.1 动手练习示例应用程序 558
20.4.2使用BorderLayout管理器 559
20 4 3 使用FlowLayout管理器 561
20.4.4 使用GridBagLayout管理器 564
第Ⅳ部分JavaServer Pages应用程序 569
第21章JSP开发 569
21.1基本的JSP标记 570
21.2自定义标记库 581
21.3 JSP开发需求 583
21.3.1 所需的语言提示 583
21.3.2理解JSP的编译和运行库 584
21.4在JDeveloper IDE中开发JSP页 584
21.4.1编辑JSP文件 585
21.4.2安装外部HTML编辑器 586
21.4.3 JSP查看器 587
21.4.4 BC4J Admin实用程序 588
21.4.5 JDeveloper JSP目录结构 589
21.5 动手练习:构建简单的JSP页 591
21.5.1 创建工作站、项目及默认的JSP页 592
21.5.2修改JSP页 592
21.5.3应用层叠样式表 594
21.5.4运行JSP页 595
21.6动手练习:创建简单的JSP表单 596
21.6.1 创建默认的JSP页,并添加表单代码 596
2 1.6.2 添加表逻辑并运行JSP页 597
第22章用BC4J数据标记构建JSP页 601
22.2.1 基本开发步骤 602
22.2 使用BC4J数据标记库进行开发的方法 602
22.2.2 JSP向导和对话框 603
22.2.3在代码编辑器中处理BC4J数据标记 606
22.3 动手练习:用BC4J数据标记建立JSP页 609
22.3.1 建立工作空间和项目 610
22.3.2用组件面板创建浏览页 610
22.3.3用JSP数据绑定工具创建编辑页 618
22.4.1创建查询页 621
22.4动手练习:建立查询页和细节页 621
22.4.2添加细节页 627
第23章BC4J数据标记技术 628
23.1 BC4J数据标记库开发技术 628
23.1.1 连接标记和组件标记的排序 628
23.1.2处理数据标记组件JSP文件 629
23.1.3修改JSP属性行为和外观 633
23.1.4格式化数据 636
23.1.5 BC4J层叠样式表 638
23.2动手练习:修改数据页向导JSP页 639
23.2.1添加BC4J项目 639
23.2.2创建雇员浏览表单和编辑表单 640
23.2.3修改编辑页 642
第24章深入了解BC4J数据标记 649
24.1 BC4J数据标记库 649
24.1.1 BC4J JSP页概念 649
24.1.2 BC4J数据标记快速旅程 654
24.2动手练习:使用表单和数据访问标记 661
24.2.1 创建JSP文件并添加数据源 662
24.2.2定义HTML表单和字段 664
24.2.3改进编辑页面 669
24.2.4构建数据表 671
第Ⅴ部分 附 录 673
附录A 导与对话框 673
A.1 New 对话框 673
A.2 导与对话框 674
附录B其他资源 684
B.1 书籍 684
B.2 网站 684
附录C UML类图语法 686
C.1 类 686
C.2 属性 686
C.3关联 686
C.3.2 命名关联 687
C.3.1 关联角色 687
C.3.3 关联基数(多重性) 688
C.3.4紧密关联 689
C.3.5 泛化 693
C.4.2约束 695
C.4.3 关键字 695
C.4.4 接口和实现 695
C.4.1 构造型 695
C.4 扩展UML 695
附录D HTML和层叠样式表概述 696
D.1 HTML 696
D.1.1 编辑HTML 696
D.1.2 HTML标记 696
D.1.3 HTML代码示例 698
D.1.4 HTML中的JavaScript 700
D.2层叠样式表 701
D.2.1 建立一个层叠样式表 702
D.2.2使用层叠样式表 703