问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle ADF是什么

发布网友 发布时间:2022-05-04 17:15

我来回答

2个回答

懂视网 时间:2022-05-04 21:36

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 2006 年 11 月发布 最近,我所工作的机构(威斯康星大学伊奥克莱尔分校)将一个用 Cobol 编写且运行在 Unisys 大型机上的老旧系统的一部分移植到了 Java/J2EE 环境中。我们的 IT 小组主要使用开放源

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

2006 年 11 月发布

最近,我所工作的机构(威斯康星大学伊奥克莱尔分校)将一个用 Cobol 编写且运行在 Unisys 大型机上的老旧系统的一部分移植到了 Java/J2EE 环境中。我们的 IT 小组主要使用开放源代码工具(包括 Eclipse、Tomcat 和 Spring)来编写应用程序。但是,许可方式上的更改使我们可以考虑 Oracle 工具,因此我们使用 Oracle JDeveloper 10g 和 Oracle 应用程序开发框架 (ADF) 编写了一个应用程序来测试开发模型。本文将对该应用程序进行描述,从而快速而详细地介绍如何使用 Oracle ADF 进行 UI 开发。(有关更进一步的技术信息,请参阅 Oracle 技术网上的 Oracle ADF 教程和 Oracle ADF 开发人员指南、Oracle ACE Steve Muench 在 Oracle 杂志上内容精彩的 ADF 专栏以及 Oracle JDeveloper 论坛中的评论。)

在本文中,我不会描述构建应用程序所需的每一个步骤,但希望这里的信息足以使您作出自己的决策。本文假设您十分了解 Java,熟悉 Eclipse 或 JDeveloper,并具有普通编程知识。(我没有在每个步骤后提醒您 Save All,但该步骤不应省略。)

改变给定体系结构和开发模型总是很困难,因此我将首先提供一些背景知识,以说明 JDeveloper 和 ADF 的价值所在,从而证明这种转变的有利性。我还会在一个单独的部分中提供一些“提示与技巧”。

背景

当前应用程序直接使用了 Java (JDK 1.5)、Spring(MVC、Web Flow、JDBC 模板)和 JSP 页面。数据也复制到了一个 Oracle 数据库 10g 第 2 版数据库中。尽管我们了解如何使用 JBoss Hibernate 作为对象关系映射 (ORM) 工具,但我们的数据访问既不复杂也不是动态的,而且 Spring JDBC 模板已经充分满足了我们的需要。

由于我们在生产中使用的是 Oracle 数据库 10g 第 2 版,因此在基于 Windows 的试用版中使用 Oracle 数据库 10g 快捷版 (XE)(Oracle 数据库的免费入门级版本)顺理成章,我们希望能够在其中轻松地访问数据。在决定使用 Oracle 的 TopLink ORM 工具后使用 Oracle 数据库也很有意义,这样我们就可以轻松地将映射移植到其他数据源(如果决定使用测试用例作为生产应用程序的基础)。我们对 XE 所作的唯一更改就是在系统主页中更改系统全局区 (SGA),以减少它使用的内存。

我们选择的 TopLink 比预期的效果还要好,因为它抽象了许多使用 JDBC 甚至接口(如 Spring 的 JDBC 模板)的繁复的详细信息。(Dustin Marx 在 OTN 上的“在 JDBC 编程中添加一些 Spring 代码”一文中提供了一个优秀示例,该示例使用 JDBC 模板,无需配置复杂的 Spring 环境。)JBoss Hibernate 是一个出色的 ORM 工具,但在端到端 ADF 解决方案中集成 TopLink 映射的能力也令人大开眼界并且非常高效。

根据 Oracle 的建议,我们创建了一个 EJB 会话 Bean 来封装对数据库的访问。这只有在应用程序和数据库之间有一个层(以便在其中根据需要使用业务逻辑)的情况下才有意义。迄今为止,我们的应用程序中没有任何需要状态的事物,而使用 Session Facade 设计模式时通常会需要状态。

使用 ADF 的一个标准步骤是创建一组能够访问数据信息库的数据控件,我们将遵循该原则。在不需要业务逻辑的情况下(通常是查询,有时是更新和删除),通过 UI 控件直接访问信息十分高效。在较复杂的情况下,可以通过在会话 Bean 方法中包含业务规则实现来应用业务规则。(ADF 开发人员指南第 1.1 章很好地说明了 ADF 和 JSF 如何协同工作以提供高效的开发环境。)

我们还使用标准的 JSF 导航创建了一组 jspx 文件。尽管我们熟悉 Struts,但这里并不使用它。我们将使用 jspx 文件,因为这是 Oracle 建议的做法。

JDeveloper 10.1.3 在整个项目中充当 IDE。这可能很明显,但忘了提醒您它无法识别 JDeveloper 在构建 ADF 应用程序的过程中所扮演的基本角色。JDeveloper 是一个 Java 开发工具,但它还可以为您提供对 TopLink、ADF UI 及数据访问控件的功能、JSF 功能以及 XML 和 JSP 文件的端到端访问,还可以提供测试部署和数据库访问环境。

同时,当您在 JDeveloper 中编辑文件时,系统会自动在窗口中调整更改,您在使用 Eclipse 和其他 IDE 时通常看不到这些更改。这些更改提供了各种视图和编辑方法,因此学习使用 JDeveloper 的丰富功能是有一定难度的。您需要了解在哪里双击、何时使用 Structure 和 Data Control 窗口、何时在属性编辑器中设置值,以及(偶尔)何时使用 Source 窗口并编写 Java 或 JSP 代码。

项目

我们的项目是一个简单的学生会银行帐户。所需的基本功能是输入和编辑支出与存款。该项目基本上是 ADF 教程中描述的功能子集,因此熟悉 SRDemo 的人可以识别出其中许多元素。SRDemo 是一个完整的示例应用程序,您可以通过 JDeveloper 的 Help 下拉菜单中的“检查更新”机制下载该应用程序。该程序包含完整的源代码,ADF 开发人员指南使用它来说明如何使用 ADF 进行开发。

第 0 阶段:构建应用程序的初始设置

第 1 步:使用 JSF、EJB 和 TopLink 模板创建一个新的 Web 应用程序。(另请参阅 Oracle ADF 教程 1-10。)选择模板并不重要,所有选项都可用,即使它们最初没有被选中。通过该模板,创建标准的 Model 和 ViewController 项目,从而保留应用程序的前端和后端。您应该设置默认程序包名称,因为在创建 Java 类时,该名称可在 JDeveloper 中用作默认名称。

第 2 步:设置数据库。尽管我们可以尝试使用 New Gallery 的 Database Tier 中的 Offline Database Objects,但我们先前已经创建了所需的 SQL,以使用一组表(3 个)创建模式。我们登录到 XE Web 界面,并使用脚本(您可以在 SQL Command 页面上的引用中找到该脚本)创建了用户和表。为这些表指定主键很重要,这样至少可以使 TopLink 具有足够的信息来生成更复杂的映射:
  • Account 用于保存有关帐户的基本信息。
  • Details 用于保存所有帐户的交易信息。
  • Manager 是与帐户关联的个人列表。
  • 为了填充表,我们编写了一个使用 DBUnit 的 Java 应用程序,并使用引用中的数据集创建了一个 CampusAccounts.xml 文件。如果愿意,您可以克隆 XML 元素来扩展数据集。由于这是应用程序中的第一个 Java 类,我们选择在 Model 项目中创建一个 New/General/Java 类,以便创建程序包。然后,将类的主体复制并粘贴到新创建的类中。如果类已经创建,我们将选择 File/Import 选项将 Java Source 复制到 Model 项目中。

    public static void main(String[] argv) throws Exception {
     Class driverClass = Class.forName("oracle.jdbc.OracleDriver");
     Connection jdbcConnection = 
      DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", 
         "CampusAccounts", "xxxxxx");
     IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
    
     IDataSet dataSet = new FlatXmlDataSet(new File("c:\CampusAccounts.xml"));
    
     try {
      DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);
     } 
     finally {
      connection.close();
     }
     }
    
    主要片段的主体演示了利用 DBUnit 功能是多么简单。它显示了用于连接到 Oracle Database XE 数据库的 URL,这也是标准 Oracle JDBC 驱动程序的名称。

    但是,您需要在项目中添加一个来自 DBUnit 的 jar 文件和一个库,以编译代码。首先,您需要从 DBUnit zip 文件中提取 jar 文件。从 Model 项目的 Properties 中,选择 Libraries/Add Jar,然后将 DBUnit jar 文件添加到项目中。通过从 Model 属性中选择 Libraries/Add Library,您可以添加 Oracle JDBC 库,该库包含 Oracle JDBC 驱动程序。一旦 jar 文件和库可用,就可以使用 JDeveloper 的 Alt-Enter 代码完成选项自动添加所需的导入。(确保导入了 java.sql.Connection。)要运行该 Java 应用程序,请在 Applications 窗口中选择该文件和绿色箭头。一旦连接创建(下一步),就简单多了。

    [1] [2] [3] [4] [5] [6] [7] [8]

    热心网友 时间:2022-05-04 18:44

    Oracle 应用程序开发框架 (Oracle ADF) 是一个端到端 JEE 框架,该框架通过提供现成的基础架构服务和虚拟的声明式开发体验,从而简化了开发。
    一种是使用 Oracle ADF 业务组件,另一种是使用 Oracle TopLink 和 EJB。
    Oracle网站上有很详细的介绍。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? elks是什么牌子的冰箱? 冰箱ROTARY是什么牌子 RO开头什么牌子冰箱? Ponshen是什么牌子的冰箱 R0Shu|en是什么牌子的冰箱? R0shulen请问是什么品牌的冰箱? 粉葛有极高的营养价值,可以怎么来食用? 学生上课睡觉,老师问她周公怎么说,学生以庄子答,是什么电影 葛粉的食用疗效 求问,追溯下人物是谁 闫飞的电视剧作品 我家里是做金属带喷漆生意的,在金属条上喷漆后进入烤箱之后出现掉漆现象是怎么回事 烤箱用久了.白钢托盘会掉色掉漆么 烤箱烤漆掉了怎么办 新买的格兰仕烤箱用了两次内壁就掉漆了,该如何维权。 就用了两次。 寨寮溪 怎么读 瑞安有公交到寨寮溪风景区吗 用华为5w2a充电器给XS充电影响电池健康度吗? 4月5号瑞安周边那里玩好 寨寮溪的介绍 说一个人是黄金圣斗士 是 什么意思? 我想起个歪歪语音聊天的名字,用黄金圣斗士名字取。再加上特别符号, 介绍认识的女孩,聊微信,没见面,我就说了句我对待感情犹豫,最后就不回信息了,最后说不合适 京东电子书阅读器JDRead可以有声阅读吗? 关于黄金圣斗士的笑话 京东电子书阅读器JDRead和kindle那个更适合国人使用? 黄金圣斗士微信头像 京东电子书阅读器JDRead可以放多少本书? 黄金圣斗士的fans,进来帮帮忙 谁能告诉我全部的黄金圣斗士? 京东电子书阅读器JDRead会对眼睛有伤害吗? 《十二黄金圣斗士》的绝招各是什么? 听朋友说有新黄金圣斗士和旧黄金圣斗士!真的有旧圣斗士吗?他们都是谁?都是什么星座叫什么? 如何解析《圣斗士星矢》中*座沙加睁眼与闭眼的意义和作用? 黄金圣斗士遗言? 243年前的黄金圣斗士各自的绝招都有哪些?威力有多大? 请教我黄金圣斗士发表的超搞笑笑话大全 请懂行的人帮我总结一下圣斗士中黄金圣斗士的招数套路 圣斗士星矢139集里面十二位黄金圣斗士说的哪些话是什么啊? 黄金圣斗士绝招 全的