第十一章

Download Report

Transcript 第十一章

第11章 Oracle J2EE
高级技术与JDeveloper
1、介绍J2EE及其结构、J2EE应用程序的组成及
Oracle9i的J2EE技术
2、Oracle9i的J2EE服务器 Oracle9i Application
Server Containers for J2EE (OC4J) 和Oracle9i Java
商业组件(Business Components for Java ,BC4J)
的特点
3、介绍Oracle9i J2EE应用的最佳开发工具
JDeveloper
4、给出通过BC4J实现J2EE应用程序的示例
目
录
11.1 Java2企业版(J2EE)
11.2 Oracle9i的J2EE技术与OC4J
11.3 Oracle9i Java商业组件(BC4J)
11.4 JDeveloper
11.1 Java2企业版(J2EE)
一、J2EE的由来 √
二、J2EE的组成
*一 般 知 识*
一、计算机应用程序的一般特点 :
大多数应用,从PC机上的简单报表程序到大型机上的复杂
计算,都由三部分组成:

用户界面部分:表示层

应用逻辑部分:业务逻辑层

数据访问部分:数据访问层
二、应用程序开发模型的变迁过程:
单层
1 2 3
两层
1 2
3
N层
三层
1
2
3
1
2 3 4
一、J2EE的由来
1、传统应用程序模型 √
2、Web应用程序模型
3、为什么需要J2EE
4、什么是J2EE
1、传统应用程序模型(一)
主机系统或单层结构:主机/终端模式



数据访问、表示和业务逻辑在一个应用中
代码复用、代码可维护性、代码的修改十分困难
应用不是分布式的,不具有可伸缩性
1、传统应用程序模型(二)
客户/服务器(Client/Server, C/S)结构:“胖”客户
端
Fat client
胖客户端:
表示逻辑
业务逻辑
业务数据模型
通讯
Fat client

用户界面和程序逻辑绑在一起,代码难以重用

服务器的数据库必须同每一个活动的客户保持连接,消
耗大量的运算资源,随着客户数目的增加性能不断下降,
且存在死锁及崩溃的可能

数据模型“紧耦合”在每一客户端,数据库结构改变将
导致全体客户端改变,不利于更新和维护
客户端应用程序越来越大,对使用者的要求也越来越高

一、J2EE的由来
1、传统应用程序模型
2、Web应用程序模型 √
3、为什么需要J2EE
4、什么是J2EE
2、 Web应用程序模型(一)
传统的Web应用程序模型:三层分布式架构
2、 Web应用程序模型(一)
传统的Web应用程序模型:三层分布式架构

WWW浏览方式带来的变化:
“Browser-based” 的客户端与 “Internetworking”
(网际互连)
 计算方式向服务器端的集中转化




客户端:业务数据模型与UI分开,更“瘦”
业务逻辑在中间层,通过:连接池,多线程可以处理多客户
端
早期应用编程困难且性能比较差:CGI(C/C++, VB, Perl等
等),ISAPI ,NSAPI
2、 Web应用程序模型(二)
N层计算模式的引入
采用N层计算结构,从逻辑角度看,系统分成客
户端、Web服务器、应用服务器、数据库服务器四层;
从物理角度看,应用服务器可以视用户并发数从1到N
台进行扩充,以保证客户端用户的响应要求。
2、 Web应用程序模型(二)
N层( N-tier )
WS: Web Server
AS: Application Server
B
WS
AS
DB
2、 Web应用程序模型(二)
N层计算模式的引入

从1层到N层,得到的改进:




每一层可以被单独改变,而无需其它层的改变
降低了部署与维护的开销,提高了灵活性、可伸缩性
引入“瘦客户端”,计算被集中至服务器端,使性能提
高成为可能
仍然存在的问题:

对企业级应用开发人员的要求太高:
需要熟悉分布式协议(IIOP、IIOPS、HTTP、HTTPS、
CGI、ISAPI、NSAPI),进行一致性事务处理,负载平衡,
考虑安全性……
2、 Web应用程序模型(三)
多层应用程序的真正优点

应用程序各部分之间松耦合,从而应用程序各
部分的更新相互独立

业务逻辑集中放在服务器上由所有用户共享,
使得系统的维护和更新变得简单,也更安全

数据库不再和每一个活动的用户保持一个连接,
而是由应用程序组件负责与数据库打交道,降
低数据库服务器的负担,提高了性能
一、J2EE的由来
1、传统应用程序模型
2、Web应用程序模型
3、为什么需要J2EE √
4、什么是J2EE
3、为什么需要J2EE
在企业级应用开发中所面临的而且必须解决的问题:







分布式
可移植
旧系统集成支持
面向Web
可装配
满足企业计算要求
 一致性
 事务性
 安全性
要有好的特性
 可伸缩
 可扩展
 易维护
3、为什么需要J2EE
企业级软件概述




“企业”是指一个为了实现某个共同目的而在一起工作的人
或实体的组织。这些组织的形式和大小并不限定,有大有小、
是盈利性的或非营利性的、可能是政府机关也可能是非政府
机构。
一般使用术语“企业”时,极有可能指的就是大型营利性组
织,如Intel、GE、Wal-Mart、摩根银行或eBay等等。
企业通常都有一些共同的需求,例如信息共享与处理、资产
管理与跟踪、资源规划、客户机用户管理、商业机密保护等
等。
而术语“企业软件”就是能够支持企业共同需求的这类软件
的总称。
3、为什么需要J2EE
企业软件和基于组件的软件

在软件开发过程中,出现面向对象开发软件的方法
后,可以实现代码重用,但只能部分实现,原因之
一是对象都细粒度化,造成对象间紧密耦合状态,
从而使得大范围的重用变得很困难。

解决问题的方法是设计软件组件。与对象不同,软
件组件是在更高的抽象级别中设计的,可以提供一
个完整的功能或服务。组件间的耦合更为松散。利
用组件的接口,可以将组件迅速组合在一起构建更
大的应用程序,这样所用的成本也比较合算。
3、为什么需要J2EE
J2EE提供了一套完整的解决所有这些
问题的框架方案:

提供了分布式、可移植组件的框架

为组件与应用服务器提供标准API(应用编程接口
Application Programming Interface)

简化了服务器端中间层组件的设计
3、为什么需要J2EE
J2EE对开发者和用户来说意味着:

更短的开发时间
可重用组件
 JSP(Java Server Pages)
 EJB(Enterprise JavaBeans)


更简化的连接

XML,JDBC,RMI-IIOP
一、J2EE的由来
1、传统应用程序模型
2、Web应用程序模型
3、为什么需要J2EE
4、什么是J2EE √
4、什么是J2EE

Open and standard based platform for
developing, deploying and managing n-tier,
Web-enabled, server-centric enterprise
applications

开放的、基于标准的平台,用以开发、部
署和管理N层结构、面向Web的,以服务器
为中心的企业级应用
内
一、J2EE的由来
二、J2EE的组成 √
容
二、J2EE的组成
1、What is Java 2 Platform √
2、J2EE的体系结构
3、J2EE架构及核心技术简介
1、What is Java 2 Platform
Java的版本历史:从一种语言发展为
一种平台


Java的前身是一种与平台无关的语言-
“OaK”,诞生于1991年Sun公司的一个研究项
目,最初目的是为了应用于消费类电子设备
的开发;
1994年Internet开始起步,1995年NetScape宣
布把Java集成到其浏览器中,可执行的Java代
码可以以Applet的形式在浏览器中运行,Java
开始流行。
1、What is Java 2 Platform
Java的版本历史:从一种语言发展为
一种平台



Sun公司1996年1月发布JDK(Java
Development Kits)1.0,1997年2月发布
JDK1.1,Java开始在企业中应用。
1998年12月发布JDK1.2,即Java 2 平台,并于
1999年6月经集成重组后重新发布。
目前J2SE的最高版本为1.4。
1、What is Java 2 Platform
目前主要的Java平台及特点如下:



J2ME - Java 2 Micro Edition:用于创建嵌入式应用程
序的Java平台(如移动电话、PDA、信息家电等)。
J2SE - Java 2 Standard Edition:用于创建典型的桌面
与工作站应用的Java平台。
J2EE - Java 2 Enterprise Edition:用于创建可扩缩的
企业应用的Java平台。J2EE运行在J2SE之上。
1、What is Java 2 Platform
J2EE规范
 J2EE是SUN公司定义的一个开发分布式企业级应
用的规范。它提供了一个多层次的分布式应用模型
和一系列开发技术规范。
 多层次分布式应用模型是指根据功能把应用逻辑分
成多个层次,每个层次支持相应的服务器和组件,
组件在分布式服务器的组件容器中运行(如Servlet
组件在Servlet容器上运行,EJB组件在EJB容器上
运行),容器间通过相关的协议进行通讯,实现组
件间的相互调用。
 遵从这个规范的开发者将得到行业的广泛支持,使
企业级应用的开发变得简单、快速。
二、J2EE的组成
1、What is Java 2 Platform
2、J2EE的体系结构 √
3、J2EE架构及核心技术简介
2、J2EE的体系结构
J2EE体系结构是一个多层的、端到端的解
决方案,这个系统结构横跨客户层到表示层、
业务层,最终到达企业信息系统层(EIS)。
2、J2EE的体系结构
Tier)——通常是一台桌面计算机,
客户可以使用GUI与应用程序进行交互。
中间层(Middle Tier)——由表示层和业务层组成,
通常由一个或者多个Web服务器和应用服务器组成。
应用服务器处理客户的请求,执行复杂的表示形式和
业务逻辑,然后将结果返回给客户层。
客户层(Client
企业信息系统层(
Enterprise Information
System,EIS )——也称为数据层,是驻留业务数
据的地方。在处理业务逻辑时,由中间层访问EIS层。
二、J2EE的组成
1、What is Java 2 Platform
2、J2EE的体系结构
3、J2EE架构及核心技术简介 √
3、J2EE架构及核心技术简介

J2EE架构:
3、J2EE架构及核心技术简介
J2EE应用程序构成:
J2EE技术提供了一个基于组件的方法来设计、
开发、装配和部署企业级应用程序。
一个J2EE应用程序可能包含一个或多个EJB组件、
Web组件,或应用程序客户端组件。
组件技术:
 组件(component)是一个应用程序级的软件单元。
 J2EE组件:



客户端组件 :客户端应用程序和Applet
服务器端Web组件 :Java Servlet和JSP
服务器端的商业组件 :Enterprise JavaBeans
3、J2EE架构及核心技术简介
J2EE容器
容器是一种运行在服务器上的软件实体,用于管理
特定类型的组件。为开发的J2EE组件提供了执行环
境。通过容器, J2EE体系结构就能在开发和部署间
提供无关性,并在不同类型的中间层服务器间提供可
移植性。
容器还负责管理部署在其中的组件的生命周期,及
诸如资源汇集和强制执行安全之类的工作。
依赖于容器的类型,还可以访问一些或全部J2EE
API
所有的J2EE组件都部署于容器中并在容器中执行。
3、J2EE架构及核心技术简介
J2EE容器类型:
应用程序容器:管理独立的java应用程序
Applet容器:为Applet提供一个执行环境
Web容器:管理Web组件(
企业级容器:管理EJB组件
JSP页面和Servlet组件)
3、J2EE架构及核心技术简介
J2EE服务器和容器
部署时会将J2EE应用程序组件安装到J2EE容器中,
如图11.2所示。
3、J2EE架构及核心技术简介
J2EE服务器和容器
J2EE服务器是J2EE产品的运行部分,它提供EJB
容器和Web容器。
3、J2EE架构及核心技术简介
J2EE应用组件
3、J2EE架构及核心技术简介
3、J2EE架构及核心技术简介

J2EE容器和组件:
容器处理
•分布性
•可伸缩性
•可用性
•事务性
•安全性
• 生命周期管理
组件处理
•表示
•JSP, Servlet,
Applet
•业务逻辑
•EJB
•数据访问逻辑
•EJB
3、J2EE架构及核心技术简介

J2EE核心技术:13种
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC
XML、JMS……
3、J2EE架构及核心技术简介
EJB — J2EE的基石:

EJB (Enterprise JavaBeans) :





EJB不是一个具体的产品,而是一个Java服务器端组件开
发的规范,软件厂商根据它来实现EJB服务器。
使用EJB,Java程序员可以将一些定义明确的程序块组合
到一起,从而方便、快捷地建构分布式应用程序。
使用EJB可以使整个程序分块明确,并且EJB可以使用其
它EJB或JDBC等服务,从而增强了分布式应用程序的可
扩展性和性能;
EJB规范在简化分布式应用程序开发复杂性方面做了大量
的工作,所以EJB程序员不必太担心事务处理、多线程、
资源管理等方面的问题,可以专注于支持应用所需的商业
逻辑,而不用担心周围框架的实现问题。
EJB的使用增强了整个系统程序的可靠性、可管理性和可
移植性。
3、J2EE架构及核心技术简介
EJB — J2EE的基石:

EJB容器是:
EJB的运行环境。它提供规范中定义的接口,使EJB类访问所需的服
务。容器厂商也可以在容器或服务器中提供额外服务的接口。 它的责任
包括:
3、J2EE架构及核心技术简介
EJB — J2EE的基石:

EJB服务器是:
管理EJB容器的高端进程或应用程序,并提供
对系统服务的访问。EJB服务器也可以提供厂商自
己的特性,如优化的数据库访问接口,对其他服务
(如CORBA服务)的访问。一个EJB服务器必须提
供支持对JNDI的名字服务和TS事务服务的可访问。

EJB分为两种:
会话EJB和实体EJB,会话EJB向客户提供一定
的服务,如:特定的商业逻辑、数据库查询等;而
实体EJB则代表数据对象,通常代表的是数据表记
录集的一行,一个实体EJB可以同时与多个客户进
行交互。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
CORBA体系结构:核心-ORB
3、J2EE架构及核心技术简介
CORBA技术:



CORBA(Common Object Request Broker
Architecture)是一个分布式对象体系结构,它独立
于平台,也独立于语言。
在这个体系结构中,一个对象可以被本机上的客户
或远程客户通过方法激活来存取。客户(一个对象
或应用)无须知道被调用对象(称为服务对象)的
运行环境,也无须知道实现这个对象的编程语言,
客户只要知道服务对象的逻辑地址和提供的接口。
这种互操作性的关键是IDL(Interface Definition
Language,接口定义语言),IDL说明对象接口中
的方法,这些方法可以被其它对象(或应用)激活。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
RMI技术:

RMI(Remote Method Invoke)是一种被EJB使用的更底层的协议,正如其
名字所表示的那样,RMI协议调用远程对象上的方法,使用序列化方式
在客户端和服务器端的对象之间传递数据。
RMI和CORBA相比:




两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java
解决方案(如,在Java RMI中,对象的接口用Java定义,而不是用IDL);
其次,CORBA没有定义安全服务,而Java RMI继承了Java的安全性;
再者,CORBA有不同的实现,不同的独立软件开发商的不同实现均有独
特性,这使得在不同平台上的匹配比较困难,而且不是所有CORBA产品
开发商都支持所有平台,而几乎所有平台都支持Java虚拟机,因此Java
RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,
那么Java RMI是分布对象计算的最好选择。
最后,IIOP(Internet Inter-ORB Protocol,Internet内部ORB协议)已经
提供了Java RMI和CORBA的互操作能力,而且两者的发展有互相借鉴的
趋势。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
JSP技术:




JSP是服务器端的脚本语言,是以Java和Servlet为基础开发而
成的动态网页生成技术,它的底层实现是Java Servlet。
JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代
码所组成。服务器在页面被客户端所请求以后对这些Java代
码进行处理,然后将生成的HTML页面返回给客户端的浏览
器。
特点:面向对象,跨平台,和Servlet一样稳定,可以使用
Servlet提供的API,克服了Servlet的缺点。
应用:一般和JavaBeans结合使用,从而将界面表现和业务逻
辑分离。
3、J2EE架构及核心技术简介
JSP和ASP的比较(一):
相似:


都是运行于服务器端的脚本语言,两者都是动态网
页生成技术。
这两项技术都使用HTML来决定网页的版面,都是
在HTML 代码中混合某种程序代码,由语言引擎解
释执行程序代码。HTML代码主要负责描述信息的
显示样式,而程序代码则用来描述处理逻辑。
3、J2EE架构及核心技术简介
JSP和ASP的比较(二):
不同:



JSP是由Sun推出的一项技术,是基于JavaServlet以及整个java
体系的Web开发技术,利用这一技术可以建立先进、安全和
跨平台的动态网站。ASP是MS公司推出的技术,只能在MS
的平台上运行,无法实现跨平台,也无安全性保障。
ASP下的编程语言是 VBScript 之类的脚本语言,而JSP 使用
的是Java。
ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全
不同的方式处理页面中嵌入的程序代码。在 ASP 下,
VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译
成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP
页面的第一次请求时发生。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
Java Servlet技术:





Servlets(=Server +Applet):是一些运行于Web服务器端的
Java小程序,用来扩展Web服务器的功能。
Servlet是一种扩展Web服务器功能的技术,而且由于它是用
Java编写的,所以能够访问整个Java API库,包括用于访问企
业数据库的JDBC API。
Servlets用特定的Java解决方案替代了其它的Web服务器方编
程模式(如:CGI,ISAPI等),因而继承了Java的所有特性
(跨平台、多线程、OO)。
用来编写Servlets的Servlet API对于服务器环境和协议没有任
何特殊的要求,所以Servlets具有很强的可移植性,也不像利
用CGI程序等其它方式那样具有性能局限。
Servlets也同样使用HTTP协议与客户端进行通讯,所以有时
也称Sevlets为“HTTP Servlets”。
3、J2EE架构及核心技术简介
Java Servlet和JSP的比较:
相似:



两者都是基于Java的技术,所以都继承了Java的所有
特性(跨平台、多线程、OO ),都可以使用Java强
大的API。
两者工作方式相似:JSP代码先被JSP容器转换为
Servlet代码再编译为类。
两者在J2EE体系结构中的工作层次相同,都负责与
客户端的连接。
3、J2EE架构及核心技术简介
Java Servlet和JSP的比较:
不同:



编程方式不同。Servlets是一些运行于Web服务器端
的Java小程序;而JSP是脚本,编写起来更简单容易。
应用目的不同。Servlet主要用于从客户端接收请求
信息,而JSP主要负责将服务器端信息传送到客户端。
使用JSP的真正意义在于:可以将界面设计和业务逻
辑设计分离。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
JavaBean技术:


JavaBean是基于Java的组件模型,有点类似于Microsoft的
COM组件。
JavaBean通过Java虚拟机(Java Virtual Machine)执行,运行
JavaBean最小的需求是JDK1.1或者以上的版本。

在Java平台中,通过JavaBean可以无限扩充Java程序的功能,
通过JavaBean的组合可以快速的生成新的应用程序。

对于程序员来说,最好的一点就是JavaBean可以实现代码的
重复利用,另外对于程序的易维护性等等也有很重大的意义。

JavaBean传统的应用在于可视化的领域,如AWT(Abstract
window Toolkit, 抽象窗口工具包)下的应用。自从JSP诞生
后,JavaBean更多的应用在了非可视化领域,在服务器端应
用方面表现出来了越来越强的生命力。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
JDBC技术:




JDBC(Java Database Connectivity)是一组API,定
义了用来访问数据源的标准Java类库,使用这个类库
可以以一种标准的方法、方便地访问数据库资源。
JDBC对数据库的访问具有平台无关性。
JDBC API为访问不同的数据库提供了一种统一的途
径,象ODBC一样,JDBC对开发者屏蔽了一些细节
问题。
JDBC的目标是使应用程序开发人员使用JDBC可以
连接任何提供了JDBC驱动程序的数据库系统,这样
就使得程序员无需对特定的数据库系统的特点有过
多的了解,从而大大简化和加快了开发过程。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS……
3、J2EE架构及核心技术简介
XML技术:



XML(Extensible Markup Language)是一种可以用来
定义其它标记语言的语言,被用来在不同的商务过
程中共享数据。
XML的发展和Java是相互独立的,但是它和Java具有
的相同目标即平台独立性。通过将Java和XML的组
合,可以得到一个完美的具有平台独立性的解决方
案。
J2EE平台全面支持和实施XML,这种强大的组合可
使XML具备跨平台的兼容性,甚至用于对XML代码
进行语法检查和调试的工具也可与平台无关。
3、J2EE架构及核心技术简介

J2EE核心技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、
XML、JMS、……
3、J2EE架构及核心技术简介
JMS技术:
JMS(Java 消息服务,Java Message Service)是一种基于 Java的技
术,因此是平台无关的。它为消息服务定义了通用 Java 语言接口,支持
最常见的消息传递模型(发布/订阅和点到点)。通过对JMS API的访问
可实现面向消息的通信 。 JMS通常用来实现异构系统之间的松散集成。
3、J2EE架构及核心技术简介
*关于消息技术:
消息系统的特点:
- 消息是异步的。
- 允许不同的应用程序之间进行通讯。
-消息应用程序之间是对等的,服务器与客户
机之间没有明显的界限。 消息的生产者可以消费
消息,消费消息的应用程序也可以生产消息。
3、J2EE架构及核心技术简介
*关于消息技术:
消息系统的优势:
-与平台无关,与在网络上所处的位置无关。
-是可伸缩,可扩展的。需更大的吞吐量,只需添加硬
件即可。可支持数万台客户机,每秒钟可处理事件的数目
可达几万。
-在异构的环境中可以很好地工作。
-是健壮的,发送接受可以失败,网络也可以失败,这
时Messaging System可以继续执行它的职责。
3、J2EE架构及核心技术简介

J2EE其它核心技术:
EJB、 CORBA、 RMI、JSP、JavaServlet、
JavaBean、JDBC、
XML、JMS、……
几个对应于几种服务的企业级API:
JNDI(Java Naming and Directory Interface)、
JMAPI(Java Management API)、
JTS/JTA(Java Transaction Service/API)、
Java Security API。
3、J2EE架构及核心技术简介

J2EE核心技术中最常用的技术:
EJB、 CORBA、 RMI、JSP、
Java Servlet、JavaBean、JDBC、XML、
JMS、……

开发大型企业级应用:异构、分布、数据交换
CORBA、 RMI、XML、JMS、……
内
一、J2EE的由来 √
二、J2EE的组成 √
容
附录

现在支持J2EE技术的AS:
BEA
WebLogic Server 7.0
IBM
WebSphere Application
Server 5.0
Borland
Enterprise Server, AppServer
Edition &
JBuilder 8.0
Oracle
9i Application Server
SunTM ONE
Application Server
Macromedia
JRun 4
谢谢!
11.2 Oracle9i的J2EE技术与OC4J



应用服务器 Oracle9iAS :提供J2EE容器OC4J,并且支
持JSP、Servlet、Enterprise JavaBeans、Web服务和所有的
J2EE服务
开发工具——Oracle推出的Oracle9i JDeveloper对开发和
部署J2EE应用程序提供百分之百的支持
数据库服务器——对于Java中的数据操作 ,Oracle数据
库环境允许用户用Java编写传统的数据存储过程、触发
器和抽象数据类型方法


从Java访问数据库
SQLJ—Oracle
返回章
11.3 Oracle9i Java商业组件(BC4J)



BC4J是一个服务器端的应用组件框架,可
用来开发和部署基于SQL表的Java应用
BC4J组件提供了与数据库的功能性接口,
并且可以使用内建的代码生成器或向导生
成代码
利用BC4J提供的关系映射工具,能够根据
数据库表格生成Java实体和视图组件
BC4J应用结构
BC4J的组件
BC4J组件主要应用于3个方面:
 1. 数据定义及校验组件
 2. 数据操作和过滤组件
 3. 存储定位及容器
1.数据定义及校验组件





实体(Entity)
属性(Attribute)
关联(Association)
域(Domain)
特性(Property)
2. 数据处理和过滤组件


视图对象(View Objects):
用SQL查询来指定和过滤定义在实体对象中
的数据
视图链接(View Links):
用于描述视图对象之间的关系
3. 存储位置及容器


包(package)
应用模块
实例化与客户应用交互的BC4J视图对象和
视图链接
返回章
11.4 JDeveloper


快速应用开发环境
功能与特点
涵盖完整的产品开发周期
 100% Java 应用程序
 Oracle9i Java商业组件 :

具有建立和测试组件的逻辑功能
 Java Servlet、JSP页面和瘦Java Swing客户端可以快速、
便捷地访问和更新数据视图

11.4 JDeveloper


11.4.1 创建基于BC4J的应用工程
11.4.2 BC4J JSP应用工程
返回章
11.4.1 创建基于BC4J的应用工程




在创建BC4J工程的过程中需要回答如下的
问题:
什么是实体对象和商业对象?
实体对之间如何关联?
确认规则是什么?
展示和操作什么数据?
基于BC4J的应用程序所需的基本组
成部分
基于BC4J的应用程序的开发过程





1. 基于数据库设计创建实体对象和关联
2. 创建或打开Oracle JDBC数据源
3. 创建工作区与BC4J工程
4. XML文件与Java文件
5. 测试商业组件工程
创建工作区与BC4J工程
(1)创建一个工作区Mybc4jWS.jws,在其中创建一个工程文件Mybc4jPR.jpr
(2)创建Business Components项,右击Mybc4jPR.jpr,选择“New Business
Components Package…”,则会显示创建BC4J工程向导
① 在向导第一步输入包的名称并选定Entity Objects mapped to database
schema objects单选按钮。
② 在向导第二步为要创建的商业组件选择一个Oracle9i数据库的连接如
“JDBCConnection1”,并以用户名SCOTT,密码tiger连接到数据库。
③ 在向导第三步的对话框中,最上端的下拉列表指明数据库用户
返回节
11.4.2 BC4J JSP应用工程

1.BC4J JSP应用体系结构
2.创建JSP应用工程


(1) 创建BC4J JSP应用:在 MyJSP.jpr工程中创建一个
BC4J JSP应用 . “Categories”中选择“JSP Business
Components”选项 , “Items”中选定Complete JSP Application
类型
(2) BC4J JSP向导





选择数据模型定义
选择创建的数据模型定义
确定每个视图对象是否产生JSP页面
针对每个视图链接对象是否产生JSP页面进行配置
(3) 分析BC4J JSP应用:HTML文件、GIF文件、部署
文件、JSP页面文件
3. 部署BC4J JSP应用
(1)初始化OC4J
① 初始化OC4J:可以单独作为J2EE窗口使用,也可以配置为
Oracle9i JDeveloper的J2EE窗口使用 。


OC4J单独作为J2EE容器 时,将下载的oc4j_extended.zip解压缩到
某一初始化目录中,然后在DOS窗口中执行如下命令:
CD\<oc4j_install-dir>\j2ee\home
java –jar oc4j.jar install
OC4J内嵌 时:
CD\<Oracle9i JDeveloper_root>/j2ee/home
java –jar oc4j.jar install
(1)初始化OC4J
② 启动OC4J


使用默认配置文件:Java -jar oc4j.jar
使用自定义配置文件:java-jar oc4j.jar-config/mypath/server.xml
③ 停止OC4J
Java -jar admin.jar ormi : //localhost admin <password> shutdown [force]
④ 测试OC4J
启动IE或者Netscape浏览器,在地址栏输入
http://localhost:8888/
(2)部署OC4J应用
① 启动OC4J
② 连接Web容器OC4J
③部署Web应用到服务器
(3)运行OC4J JSP应用

BC4J JSP应用部署完成后,可以在系统导航窗口中MyJSP.jpr工程
节点下,右击main.html并选择“Run main.html”启动OC4J JSP应
用,启动界面如图11.9所示
单击EmpView1视图对象的Browse超文本链接,
则执行结果如图11.10所示
图11.10 EmpView1视图对象页面
单击Edit按钮,执行结果如图11.11所
示
图11.11 EmpView1视图对象修改页面
在Empno(员工号)项输入7369,单
击Search按钮,则查询结果如图11.12所
示
图11.12 EmpView1视图对象查询页面
单击FkDeptnoLink视图链接的超文本链
接,执行结果如图11.13所示
返回节
图11.13部门.员工主从视图