这篇文章用来熟悉JDeveloper工具和ADF框架。
新手上路学Oracle ADF框架,怀着激动地心情敲下了这一篇文章。
一、新建应用程序
新建应用程序。选择Fusion Web Application。

1.1 填写应用程序名。

1.2填写项目名

1.3 填写包名

1.4 填写项目名

1.5 填写包名

二、新建EO、VO、AM
右击Model-->New,选择Business Tier-->ADF Business Component-->Business Component from Table。

选择数据库连接,如果之前没有建立IDE级的数据库连接就点击加号。

填写连接信息。

填写好之后点击Test Connection按钮,如果是Success,点击OK,如果出现了其他错误,就要自己排查原因了,比如Oracle服务没开,账号没解锁,用户的角色问题等等。我遇到过一个问题Test Failed: ORA-01031: insufficient privileges,用scott账号连接,Role选的SYSDBA出现了这个错误。这里的Role可以什么都不选。只有用sys或者system账号连接的时候选。

2.1 新建EO

点击Query按钮,查找HR用户所有的表。在Available中选择DEPARTMENTS,点击向右的箭头,则这个表被选中,修改Entity Name为DepartmentsVO。

2.2 新建VO
根据EO新建VO,也是在Available中选择DepartmentsEO,点击向右的箭头,修改Object Name为DepartmentsVO。
新建只读VO,这一步直接点击Next,当前不需要。

2.3 新建AM
新建AM,修改一下AM的包名和名字。然后点击Finish。

三、逻辑处理
双击打开ViewController-->Web COntent-->WEB-INF-->adfc-config.xml文件。

在Component Palette中的Components拖动一个View组件到文件中。

双击文件中的图标,修改文件名和文件路径,如果没有勾选Create as XML Document,就手动勾选。

3.1 查询功能
将DataControls中的DepartmentsVO1拖动到list.jspx中。如果DataControls中什么都没有就点击一下右边刷新的图标。拖动到list.jspx之后在快捷菜单中选择Table/List View-->ADF


选择Single Row。

右击list.jspx,选择Debug。

第一次运行会要输入weblogic的密码。访问地址和监听端口。

服务器启动之后会在控制台打印访问的路径,还会自动打开浏览器来访问这个页面。


3.2 新增功能
把服务器停掉。再打开adfc-config.xml文件。

拖动一个view到adfc-config.xml中,修改文件名为edit.jspx。

将DepartmentVO1拖动到edit.jspx中。

在快捷菜单中选择Form-->ADF Form。点击OK。


添加Commit和Rollback。用来提交事务和回滚事务。

快捷菜单选择ADF Button,ADF Link也可以。


将CreateInsert拖动到list.jspx中。


接下来要做到点击list.jspx中的CreateInsert跳转到edit.jspx页面。
在edit.jspx页面点击Commit或Rollback跳转到list.jspx页面。
再次打开adgc-config.xml。选择Control Flow Case。

选择之后点击起始页面和终止页面。填写映射地址。

打开list.jspx,点击Source,在源代码中,将CreateInsert按钮添加action属性,属性值为edit。
<af:commandButton actionListener="#{bindings.CreateInsert.execute}"
text="CreateInsert" action="edit"
disabled="#{!bindings.CreateInsert.enabled}"
id="cb1"/>
打开edit.jspx,点击Source,在源代码中,将Commit和Rollback添加action属性,值为back。
<af:commandButton actionListener="#{bindings.Commit.execute}"
text="Commit" disabled="#{!bindings.Commit.enabled}"
id="cb1" action="back"/>
<af:commandButton actionListener="#{bindings.Rollback.execute}"
text="Rollback"
disabled="#{!bindings.Rollback.enabled}"
immediate="true" id="cb2" action="back">
右击list.jspx选择Debug启动。
启动之后点击CreateInsert。跳转到新增的页面。

在新增页面填写信息。点击Commit。

跳转回查找页面,可以看到刚刚新增的数据已经有了。

数据库中也有了这个数据。

3.3 修改功能
打开list.jspx。选择表格,在表格的右上角有个向下的箭头,点击这个箭头,选择Insert inside -> Column。

表格多了一列,然后把这一列拖到第一列。

右击第一列,选择Go to Properties。




拖动一个Button到操作这一列。修改Text为编辑。修改Action为edit。



然后右击list.jspx-->Debug。
页面上的效果。

编辑刚刚添加的那条数据。

跳转到编辑页面。修改DepartmentName为haha。点击Commit。

如果按钮失效了,打开Sources,将Commit和Rollback按钮中的disabled="#{!bindings.Commit.enabled}"删掉。
数据库中的已经修改了。

3.4 删除功能
将Delete拖动到操作这一列中。修改Text为删除。

再添加Commit和Rollback。修改为提交和回滚。
右击list.jspx-->Degub。

现在删除DepartmentId为12的数据。点击删除按钮。查看数据库。

数据库中还有这条数据。原因是没有提交事务。点击提交按钮。再次查询数据库。数据库中的数据被删除了。

3.5 分页
在list.jspx中选择表格,修改属性ScrollPolicy为page

修改AutoHeightRows为0,FetchSize为10。

分页效果。

Oracle ADF的一个特性就是声明式和可视化,没写一句Java代码实现了单表增删改查。
Oracle ADF实战:单表增删改查步骤详解
本文详细介绍了使用Oracle ADF在JDeveloper中创建新应用程序,通过新建EO、VO、AM来实现单表的查询、新增、修改和删除功能。文章覆盖了从设置数据库连接,到生成并配置各个组件,最后实现分页操作的全过程。
1454





