OracleADF增删改查精.docx
《OracleADF增删改查精.docx》由会员分享,可在线阅读,更多相关《OracleADF增删改查精.docx(20页珍藏版)》请在冰点文库上搜索。
OracleADF增删改查精
ADFHands-on:
使用ADF创建简单的增删改查
levin.yuu@
简介
本文介绍如何使用Oracle应用开发框架ADF(ApplicationDevelopmentFramework)来创建包含简单的增删改查功能的Web应用。
本文目的
帮助ADF的学习者在学习ADF基本知识后进行ADF实践,顺利完成ADF开发的入门,同时通过该实验更深入了解ADF的相关概念。
本文不涉及
本文不涉及ADF的基本概念和模型的讲解。
关于ADF详细内容可参考Oracle官网上的ADF开发者指南:
本文的阅读对象
ADF入门学习人员(对ADF开发框架有初步的认知)或想了解ADF开发流程的技术爱好者。
开发环境
1.安装JDeveloper。
JDevloper安装介质下载地址:
2.数据库。
本实验是对数据库单表进行CRUD,表名:
Country,创建脚本:
CREATETABLECOUNTRIES
(COUNTRY_IDCHAR(2NOTNULL,
COUNTRY_NAMEVARCHAR2(40,
REGION_IDNUMBER,
CONSTRAINT"COUNTRY_C_ID_PK"PRIMARYKEY("COUNTRY_ID"ENABLE
insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('AR','Argentina',2;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('AU','Australia',3;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('BE','Belgium',1;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('BR','Brazil',2;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('CA','Canada',2;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('CH','Switzerland',
1;
insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('CN','China',3;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('DE','Germany',1;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('DK','Denmark',1;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('EG','Egypt',4;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('FR','France',1;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('HK','HongKong',3;insertintoCOUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_IDvalues('IL','Israel',4;实验步骤
创建ADFWebApplicaton
打开JDeveloper,File->New->Application->FusionWebApplication
ApplicationName:
HelloWorldApp
单击Finish,生成包含Model和ViewController两个project的application。
创建业务组件(BusinessComponent)
右键单击Model工程,New->ADFBusinessComponents->BusinessComponentsfromTables
单击Ok,弹出设置数据库连接的对话框;
单击“+”按钮创建新的连接。
ConnectionName栏设置连接名称:
myConn,并设置目标数据库的连接信息,测试连接成功后单击“OK”;
此时Connection中就出现了刚创建的myConn连接,单击“OK”进入BusinessComponent创建窗口;
设置EntityObjects
package:
model.entities
单击Query按钮查询出数据库中的表,将COUNTRIES表移到Selected框中
单击Next,设置viewobjects;
package:
model.queries
将CountriesView移到Selected框中
单击“Next”,忽略Read-OnlyViewObjects的设置;单击“Next”,进入ApplicationModule设置界面,修改package:
model.services;
单击Finish,完成BusinessComponets创建。
设置查询条件
由于在查询页面中需要根据CountryId来对Country表进行查询,因此我们需要在Country视图中定义一个根据CountryId查询的Criteria。
双击Model工程下的CountryView,单击Query标签,进入Country视图的查询定义界面;
点击“ViewCriteria”后的“+”按钮创建Criteria
CriteriaName:
CountriesViewByCountryId
单击“AddItem”
Attribute:
CountryId
Operator:
Equals
Operand:
BindVariable
单击Parameter后面的“+”按钮,创建绑定的变量
Name:
varCountryId
Type:
String
单击OK,回到CreateCriteria界面,单击OK完成CountriesViewByCountryIdCriteria的创建。
设置AppModule中的DataModel
双击Model工程中的AppModule文件,选择“DataModel”标签;
单击选中DataModel框中的CountryView1,点击DataModel后的“Edit”按钮,在弹出的编辑界面中将CountriesViewByCountyIdCriteria移到Selected框中。
单击Ok,保存,完成Country查询的定义。
创建Web视图
创建countrieslist页面
右键单击ViewController工程,New->JSF->JSFPage
FileName:
listPage.jspx
勾选中“CreateasXMLDocument(*.jspx”
单击OK,进入listPage页面。
创建countrieslist显示table
将ComponentPalette窗口中的“PanelCollection”组件拖拽到listPage中
点击DataControls窗口的刷新按钮,显示出刚创建的
AppModuleDataControl
将ContriesView1拖拽到listPage页面中“PanelCollection”中,选择Table->ADFReadOnlyTable
在弹出的EditTableColumns窗口中选择“SingleRow",单击OK生成Country列表。
此时可右键点击listPage.jspx,单击“Run”,运行该页面,页面将显示country的所有记录的列表。
创建countries的查询panel
在DataControls窗口中将CountriesView1->Operations->ExecuteWithParas拖拽到listPage页面下PanelCollection组件的左方,选择“ADFParameterForm”,在“DisplayLabel”中输入CountryId,单击
OK
在生成的Panel中单击“ExecuteWithP
arams”按钮,在属性窗口中将Text属性修改为
Search
再次右键listPage.jspx->Run运行该页面验证查询功能。
创建编辑页面
安装listPage页面的方式创建一个新页面:
editPage.jspx
将DataControls中的AppModuleDataCountrol/CountriesView1拖拽到editPage页面,选择Form->ADFForm
单击OK,完成Form的创建;
拖拽两个Button组件到Form下方,将Text属性分别修改为Cancel和
Save
保存页面
创建PageFlow
双击打开ViewController工程下WebContent/PageFlows/adfc-config将页面listPage.jspx和editPage.jspx拖拽到空白处,分别生成listPage和editPage两个图标;将DataControls窗口下AppModuleDataControl/CountriesView1/Operations/CreateInsert拖到空白处,生成一个CreateInsert图标;将DataControls窗口下AppModuleDataControl/Operations/Commit拖到空白处,生成一个Commit图标;将DataControls窗口下AppModuleDataControl/Operations/Executet拖到空白处,生成一个Execute图标;单击ComponentPalette中ControlFlowCase的箭头组件,使其由listPage图标指向CreateInsert图标,并修改FormOutcome:
new重复创建以下的ControlFlowCase
listPage添加新增、修改、删除按钮打开listPage页面,将ComponentPalette窗口中的Toolbar组件拖到panelCollection中toolbar区域;拖拽两个ToolbarButton组件拖到Toolbar中,分别命名为New和Edit,将New按钮属性中的Action值修改为new,将Edit按钮的修改为edit;将DataControls窗口下AppModuleDataControl/CountriesView1/Operations/Delete拖到
Toolbar中,将其属性中的Action值修改为
delete
在左边structure中,选择
af:
table-t1
并在右边的
propertyInspector
中找到
partialTrigger
属性,点击
edit
在弹出的窗口中选择command3加入到select中
点击OK.
修改editPage按钮导航
将Cancel按钮属性中的Action值修改为cancel将Save按钮属性中的Action值修改为save
至此对Countries表的CRUD功能就完成了。
运行
右键listPage.jspx->Run。
示例代码
HelloWorldApp.zip