这篇文章用来熟悉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代码实现了单表增删改查。