3.3.3列表比较运算符 8 1
第1章0racle对象关系数据库设计和体系结构概述 1
1.1书店数据库的关系模型和设计 1
目 录 1
1.1.1实体表示法 3
1.1.2属性表示法 3
1.1.3关系表示法 3
1.2数据库模型和设计的重要性 5
1.3 将ERD转换为表设计 6
1.4转换超类型和子类型实体 6
1.5类属子类型设计 8
1.6表或系统设计 8
1.7书店数据库的对象模型和设计 9
10.1 Oracle JDBC驱动程序的扩展 3 10
1.7.2链接表示法:关联和聚集 11
1.7.1类注释 11
1.7.3继承层次表示法 13
1.8将类模型映射到Oracle数据库 13
4.1.3 DELETE语句 1 14
1.9从对象到关系的映射规则 15
1.9.1对象标识符与惟一标识符 15
1.9.2将属性映射到列 16
1.9.3将类映射到表 16
1.9.4映射继承层次关系 18
1.9.5 映射关联 20
1.9.6映射聚集 25
1.9.7将类模型映射为Oracle关系表 25
1.9.8将类模型映射为Oracle对象表 26
1.10 小结 29
2.1 SQL语句概述 30
第2章数据定义语言(DDL)语句 30
2.2 Oracle SQL*Plus简介 32
2.4数据库结构的Oracle命名规则 34
2.5 Oracle内置数据类型 34
2.3常规DDL语法 34
2.6关系表 35
2.6.1创建表 35
2.6.2数据库约束/数据完整性规则 36
2.7创建表的其他 38
2.7.1修改表结构 38
2.8关系视图 42
2.8.1 创建视图 42
2.7.2删除表及其数据 42
2.9 Oracle序列 43
2.8.3删除视图 43
2.8.2修改视图 43
2.9.2更改序列 44
2.9.3删除序列 44
2.9.1 创建序列 44
2.10 Oracle同义词 45
2.11 Oracle对象类型 46
2.11.1创建对象类型 46
2.11.2 MAP和ORDER成员方法 53
2.11.3使用对象类型 56
2.11.4修改对象类型 56
5.3 小结 1 57
2.12.1创建对象表 57
2.11.5删除对象类型 57
2.12 Oracle对象表 57
2.12.2修改对象表 60
2.12.3删除对象表 61
2.13 Oracle对象视图 61
2.13.2创建对象视图 62
2.13.1选择对象标识符 62
2.13.3对象视图示例 62
2.13.4修改对象视图 65
2.1 3.5 删除对象视图 65
2.13.6创建集合 65
2.14安全性:访问控制语句 68
2.14.1系统特权的GRANT语句 68
2.14.2系统特权的REVOKE语句 69
2.14.3数据库对象特权 69
2.15 小结 71
3.1 SELECT语句 72
第3章查询处理 72
3.1.1 列的别名 73
3.1.2 SQL表达式中的计算 74
3.2单行函数 77
3.3.1查询条件表达式 80
3.3限制检索行的WHERE子句 80
3.3.2否定条件 81
3.3.4范围比较运算符 81
3.3.5模式匹配比较运算符 82
3.3.6处理空值 83
3.3.7组合多个条件 84
3.4表联接操作 84
3.5 ORDERBY子句 87
3.6聚集函数 89
3.7 GROUP BY子句 90
3.8 HAVING子句 93
3.9子查询 94
3.9.1子查询的使用规则 94
3.9.2子查询类型 97
3.10.1对象表和列上的查询 98
3.10查询对象结构 98
3.10.2对象表中对象实例的实用函数 100
3.10.3查询嵌套对象实例值 102
3.10.4查询集合 104
3.11 小结 106
第4章数据操纵语言(DML)语句和事务 108
4.1关系表上的DML 108
4.1.1INSERT语句 108
4.1.2 UPDATE语句 112
4.1.4 DML语句中的子查询 115
4.2对象表上的DML 116
4.2.1插入对象实例 117
4.2.2更新对象实例属性 119
4.2.3删除对象实例 120
4.2.4带有对象引用的DML 120
4.3集合对象上的DML 123
4.3.1 集合的插入操作 124
4.3.2集合的更新操作 126
4.3.3集合的删除操作 127
4.4用DML提高性能 128
4.5 Oracle SQL中的事务 129
4.6 小结 134
第5章0racle体系结构 135
5.1 Oracle体系结构 135
5.1.1 Oracle SGA和后端进程/线程 137
5.1.2事务生存期 140
5.1.4 SQL语句和绑定变量 141
5.1.3Oracle SGA组件 141
5.2 性能调整 143
5.2.1 关注性能的SQL语句 143
5.2.2 Oracle查询优化程序 144
5.2.3 SQL语句分析 146
5.2.4浏览Oracle共享池 153
第6章I nternet安全性 158
6.1 网络防火墙 158
6.2 Oracle安全性 161
6.3非军事区域 163
6.4使用Oracle安全性和同义词实现开发环境 164
6.5 Oracle的新安全特征 169
6.6小结 170
第7章PL/SQL概述 171
7.1.1 PL/SQL块结构 172
7.1 匿名块 172
7.1.2 执行PL/SQL块 174
7.2 PL/SQL变量和数据类型 175
7.2.1子类型定义 176
7.2.2标量数据类型 177
7.2.3大对象数据类型 177
7.2.4复合数据类型 178
7.2.5从数据库中导出PL/SQL数据类型 180
7.2.6引用数据类型 181
7.2.7字面量值 183
7.3条件和顺序控制 185
7.3.1 IF语句 186
7.3.2循环结构 188
7.4.1 在PL/SQL中使用SELECT语句 192
7.4 在PL/SQL中使用SQL语句 192
7.4.2 PL/SQL中的DML语句 193
7.5 游标 196
7.5.1隐式游标 197
7.5.2显式游标 198
7.6 PL/SQL表和可变数组 200
7.6.1 嵌套表 201
7.6.2索引表 201
7.6.3可变数组 205
7.6.4嵌套表和可变数组的优点 206
7.7 PL/SQL中的用户自定义/对象类型 209
7.8小结 210
8.1存储过程和函数 211
第8章PL/SQL过程、函数、 包和异常 211
8.1.1 创建过程 212
8.1.2调用过程 212
8.1.3创建函数 213
8.1.4调用函数 214
8.1.5用定义者或者调用者权力执行PL/SQL代码 215
8.1.6替换过程或函数 216
8.1.7指定参数 216
8.1.8向过程和函数传递参数 220
8.2 PL/SQL包 224
8.2.1包说明 224
8.2.2包主体部分 225
8.2.3调用打包过程或函数 226
8.2.4过程与函数重载 227
8.2.5使用包函数扩展SQ L 235
8.3.1 声明PL/SQL对象变量 236
8.3 PL/SQL和对象类型 236
8.3.2在PL/SQL中实例化对象实例 238
8.3.3 在PL/SQL中使用SQL对象属性与方法 240
8.4 PL/SQL中的异常处理 248
8.4.1 捕获异常 248
8.4.2预定义异常 250
8.4.3用户自定义的异常 251
8.4.4捕获任何异常的常规异常处理 254
8.5 PL/SQL中的事务 256
8.6 比较Java和PL/SQL 258
8.7性能考虑因素 259
8.7.1客户/服务器应用程序分割 259
8.7.3调整数据访问代码 260
8.7.2网络往返次数减至最少 260
8.8小结 263
第9章用JDBC访问数据 264
9.1 JDBC体系结构概述 265
9.2驱动程序管理器和JDBC驱动程序 266
9.2.1 JDBC驱动程序类型 267
9.2.2 ORACLEJDBC驱动程序 267
92.3 JDBC驱动程序管理器 269
9.2.4加载JDBC驱动程序 269
9.3 JDBC接口和类概述 270
9.4.1连接到数据库 271
9.4使用JDBC对象 271
9.4.2执行SQL语句 276
9.4.3JDBC和事务 305
9.4.4在小程序中使用JDBC 306
9.5 小结 307
第1 0章用JDBC增强数据库访问 309
10.1.1使用JDBC驱动程序扩展 310
10.1.2行预取 311
10.1.3使用批量更新 314
10.1.4流数据类型 317
10.1.5使用Oracle ROWID 348
10.1.6调用PL/SQL匿名块 349
10.1.7读写Java对象 350
10.1.8读写Oracle对象类型 359
10.1.9读写集合 373
10.2支持JDBC 2.0可选包 377
10.2.1使用可滚动结果集 377
10.2.2 JDBC 2.0数据源 378
10.2.3使用JNDI获得连接 380
10.2.4使用JDBC 2.0连接池 387
10.3 小结 391
第1 1章用SQLJ访问数据: 在Java中嵌入SQ1 393
11.1 SQLJ概述 394
11.1.1 SQLJ组件 394
11.1.2创建SQLJ文件 395
11.1.3翻译SQLJ文件 395
11.2 从SQLJ中连接到数据库 398
1 1.2.1设置默认连接上下文 398
11.1.4运行SQLJ文件 398
11.2.2创建和使用其他连接上下文 401
11.2.3执行上下文 403
11.3 使用SQLJ执行SQL语句 405
11.3.1 使用主机变量 407
11.3.2在SQLJ中使用DML和DDL语句 408
11.3.3查询处理 410
11.4处理Oracle SQL对象类型 424
11.4.1使用Oracle JPublisher 424
11.4.2使用JPublisher生成的类 429
11.5处理SQL集合 440
11.5.1 创建SQL集合和表 440
11.5.2为SQL集合生成Java类 442
11.5.3从Java中访问SQL集合 444
11.6.1读取LONG列 449
11.6管理大数据类型 449
11.6.2 写LONG列 450
1 1.6.3读取LONG RAW列 451
11.6.4 写LONG RAW列 452
11.6.5 读取CLOB列 452
1 1.6.6写CLOB列 453
1 1.6.7读取BLOB列 454
11.6.8写BLOB列 454
11.6.9用UnicodeStream读取LONG列 455
11.6.10用UnicodeStream写LONG列 456
11.6.11读取BFILE 457
11.6.12写BFILE 457
11.7.3存储过程或函数参数 458
11.7.2调用存储函数 458
11.7.1 调用存储过程 458
11.7执行存储过程和函数 458
11.8小结 459
第1 2章Oracle中的Java存储过程 460
12.1 Oracle内核中运行的Java代码 460
12.1.1优点 461
12.1.2限制 461
12.2开发和部署存储过程的3个步骤 462
12.2.1在Java中开发存储过程 462
12.2.2将Java字节码加载到Oracle中 468
12.2.3在数据库中公布Java类 471
12.2.4使用JDeveloper的自动部署功能 476
12.3 Java与PL/SQL的交互 479
12.3.1 从Java中调用PL/SQL 479
12.3.3访问结果集 482
12.3.2从PL/SQL中调用Java 482
12.4 比较PL/SQL与Java:选择正确的工具 484
12.5小结 487
第1 3章Java业务组件和XML 488
13.1 Java业务组件框架 489
13.2 XML基础 491
13.2.1文本数据和标记 491
13.2.2比较元素与属性 491
13.2.3 XML表示层次信息 492
13.2.4文档类型定义 492
13.2.5XML解析程序、DOM和SAX API 494
13.2.6样式表(CSS和XSL) 494
13.2.7 XML和Oracle Java业务组件 494
13.3.1为项目创建命名连接 495
13.3创建业务组件应用程序模块 495
13.3.2用JDeveloper生成业务组件 497
13.4测试组件和应用程序模块 512
13.5创建BC4J客户应用程序 515
13.5.1创建简单的GUI客户 515
13.5.2创建JSP客户 522
1 3.5.3手工编码业务组件客户 529
13.6定制组件 537
13.6.1数据验证规则 538
13.6.2使用域 546
13.6.3记录的逻辑删除 552
13.7部署业务组件 560
13.7.1用部署向导创建Java存档文件 560
13.7.2为本地客户设置CLASSPATH 563
13.8小结 565
13.7.3运行客户应用程序 565
第1 4章用Java servlets和连接池访问数据 567
14.1 多线程、会话状态和安全性 568
14.2连接池 569
14.3 servlets示例 571
14.3.1数据库设计 571
14.3.2 Java连接池 578
14.3.3核心Servlet方法 592
14.4 BookServlet的优缺点 610
14.5运行BookServlet 611
14.5.1配置AllaireJRun 612
14.5.2配置Netscape iPlanet 614
14.5.3配置Sun Java Web服务器 617
14.5.4配置Apache和Jserv 619
14.5.5配置JSDK ServletRunner或者JSWDK服务器 620
145.6配置Oracle应用程序服务器(OAS) 621
14.6小结 623
第1 5章JSP与ASP 625
1 5.1 JSP概述 625
15.1.1 JSP元素 625
15.1.2 JSP标记 626
15.1.3高级JSP:Bean作用域、包含、重定向和标记扩展 631
1 5.1.4 JSP示例 633
15.1.5使用JDeveloper支持JSP 642
15.2 ASP概述 643
15.2.1 ASP元素 645
15.2.2ASP示例 647
15.3 比较JSP与ASP 651
15.4使用JSP改写BookServlet 652
15.4.1连接缓存 653
15.4.2 Java Bean和Java服务器页面 655
15.4.3 Serveimage Servlet 659
1 5.5 小结 664
第16章在Oracle应用程序服务器中使用Java 665
16.1 Oracle应用程序服务器的发展 666
16.1.1 Oracle Web Server 1.0 666
16.1.2 Oracle Web Server 2.0 667
16.1.3 OracleWeb Application Server 3.0 668
16.1.4 Oracle Application Server 4.0 669
16.2 Oracle应用程序服务器体系结构 669
16.2.1 HTTP请求的基本流程 671
16.2.2 OAS中HTTP请求的流程 674
16.2.4理解OAS配置 675
16.2.3 OAS中IIOP请求的流程 675
16.3配置PL/SQL应用程序 680
16.3.1 安装PL/SQLToolkit 681
16.3.2配置数据库访问描述符 683
16.3.3创建PL/SQL应用程序和托架服务 684
16.3.4 PL/SQL示例 687
16.4配置Java应用程序 692
16.4.1 用Java WebToolkit开发servlet 693
16.4.2使用Java WebToolkit的Jservlet示例 694
16.4.3 JSP应用程序 700
16.4.4简单的JSP 701
16.5 Oracle 9i应用程序服务器概述 702
16.6小结 702
第17章使用网络套接字的Web传统应用程序 704
17.1 中间件设计模式 705
17.2 Java套接字 706
17.3 小结 727
第18章用JN I处理Web传统应用程序 728
18.1 Oracle预编译程序 729
18.2 Java本机方法 736
18.3设置运行示例的环境 744
18.3.1 Microsoft Windows 745
18.3.2 UNIX/SOLARIS 747
18.4调试JNI函数 749
18.4.1在Microsoft Visual C/C++中调试 750
18.4.2在Solafis环境中调试 751
18.5小结 755
第19章通过Java访问Oracle高级排队机制 756
19.1应用程序队列 756
19.2 Oracle高级排队机制 757
19.3 高级排队示例 760
19.3.1 通过PL/SQL的Java包装处理消息 762
19.3.2通过本机Java接口处理消息 766
19.3.3通过JMS接口处理消息 770
19.4小结 777
第20章使用Oracle复制建立分布式系统 778
20.1数据复制 779
20.2 Oracle基本复制 781
20.3数据复制示例 784
20.4小结 796
第21章EJB概述 797
21.1EJB环境和结构 798
21.1.1 EJB环境 798
21.1.2 EJB的结构 799
2 1.2创建EJB 800
21.2.1 Bean类 800
21.2.2Home接口 802
21.2.3Remote接口 803
21.2.4其他类 804
21.2.5会话Bean的生存期 805
2 1.3创建EJB客户应用程序 807
21.3.1开发客户代码 807
21.3.2步骤1和2:查找Home对象 807
21.3.3步骤3:使用Home对象创建Bean实例 810
21.3.4步骤4:调用Bean方法 811
21.3.5步骤5:删除EJB和释放资源 812
21.4用JDeveloper创建EJB和客户 812
2 1.4.1创建Enterprise JavaBean类 813
21.4.2用JDeveloper创建客户 816
21.5运行EJB 817
2 1.5.1EJB部署到Oracle 819
21.5.2运行EJB客户 820
21.6小结 821
第22章部署和使用EJB 822
22.1 准备运行Oracle 8i EJB服务 823
22.1.1 安装Oracle JServer 823
22.1.2设置IIOP服务 823
221.3管理数据库服务器内存 826
22.2用命令行实用程序部署EJB 828
22.2.1编译EJB代码和创建EJB-JAR文件 828
22.2.2创建部署描述符 830
22.2.3运行deployejb实用程序 833
22.3部署后运行客户应用程序 835
22.4启用事务的EJB 836
22.4.1 在EJB方法中使用JDBC 836
22.4.2在EJB方法中使用SOLJ 837
22.4.3事务服务和分布式事务 838
22.4.4设置事务属性值 842
22.4.5 EJB事务的应用程序情况 843
22.4.6客户管理的EJB事务 844
22.4.7容器管理的永久性 849
22.4.8使用容器管理的事务 849
22.4.9 bean管理的永久性 861
22.4.10使用Bean管理的事务 862
22.5 Oracle 8i EJB的限制和局限性 865
22.6 Oracle 8i中的EJB安全性 865
22.6.1控制公布名称的访问 866
22.6.2控制EJB方法的访问 868
22.6.4授予EJB所用数据库对象的访问权限 870
22.6.3授予EJB类的执行权限 870
22.7从Oracle服务器中删除EJB 871
22.8将EJB部署到Oracle应用程序服务器 872
22.9小结 874
第23章CORBA及其在Oracle 8i中的实现 875
23.1 分布式计算:历史回顾 875
23.2 CORBA 876
23.2.1 ORB 877
23.2.2对象适配器 877
23.2.3接口定义语言 878
23.2.4 IIOP 880
23.2.5 CORBA服务 882
23.3综合应用:第…个CORBA程序 883
23.2.6连接和鉴别 883
23.4 Java事务服务 892
23.4.1 客户端和服务器端划分事务界限 892
23.4.2客户端事务 893
23.4.3服务器端事务 894
23.5小结 895
第24章高级CORBA主题 896
24.1接口定义语言的更多信息 896
24.1.1 IDL到Java基本数据类型的映射 897
24.1.2映射记录、枚举、联合、序列和数组 899
24.2管理Oracle名称空间 904
24.3使用CORBA分层机制 906
24.4进一步参考 915
24.5 小结 915