ADF开发入门教程2多表.doc
《ADF开发入门教程2多表.doc》由会员分享,可在线阅读,更多相关《ADF开发入门教程2多表.doc(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目名称密级ADF开发入门教程-多表CRUD保密版 本共55页LY2011-GZMH-XQSMS-ZSGLXT V1.0ADF开发入门教程-多表CRUD拟 制杨国卫 日期2012-12-14评审人日期批 准日期 广州联奕信息科技有限公司Guangzhou LianYi Information Technology Co., Ltd.版权所有 不得复制Copyright 2012 . All Rights Reserved文档更改历史记录序号主要更改内容版本号更改人更改时间1创建初始版本V1.0杨国卫2012-12-142345678文档分发记录序号文档接收人员版本号发送人发送时间1234567
2、891011说明在做这个教程之前,你要懂得单表的增删改查功能;如果还不懂,请参考ADF开发入门教程-单表CRUD.doc这个教程的数据库没有外键关联目的初步掌握ADF多表增删改查功能。简单的表单验证数据库PDM图创建数据库的代码放在旁边yh.sql,项目源码为yhApp.zip数据库请使用以下用户用户名:wei密码:wei开始之前要求:1、 完成角色表xtgl_jsb、部门表xtgl_bm、代码集表xtgl_dmj的单表增删除改查期待的结果:1、完成用户表的增删改查(与用户、角色、代码相关联)单表CRUD的补充步骤建立一个ADF 项目建立ADF Bussiness Component增加序列(
3、new oracle.jbo.server.SequenceImpl(S_JSB,adf.object.getDBTransaction().getSequenceNumber()这里的S_JSB就是Oracle数据库的序列用同样的方式将S_YHB、S_BM、S_DMJ加到用户表、部门表、代码集表。用过MYSQL就知道,主键是可以自动增长的,只需要用auto_increment关键字,而在Oracle里,是没有auto_increment关键字来设计自动增长的,只能用序列;如果你还不懂,请看在form表单表,就不再手动去填写id值了,所以:如下面的jsb表的jsid,就可删除掉用户表、部门表、
4、代码集表也是一样,因为每张表加了序列,所以主键ID都不用显示出来给用户手动去填写了,因为主键ID会自动生成值有些字段在页面显示很长,如下图,这是因为这里的长度默认是根据数据库的字段长度来决定的解决的办法 就是设计字段的长度如下面角色名称,双击XtglJsb,双击Jsmc,选择Control Hints,在Display With输入长度,比如50,保存后运行项目看看是不是改变了,其他字段也是同样方式设计的运行效果:你可能会问,在form表单里这里应该显示中文而不是英文,解决办法 就是设计表单显示方式在刚才设计字段显示长度同样的地方,在Label Text输入中文名称,如角色名称,其他字段也是同
5、样的方式运行效果:你又可能会问了,那个“是否超管”应该是用下拉框,怎么可能是输入框呢?只有两个值,“是”或者“否”下面是解决办法:设计简单下拉框在Common Components里找到Select One Choice拖到form表单里sfcg下面点击新增两个select item ,效果如下图点击 finish把inputText 里的value与label属性值copy到selectOneChoice的label与value属性里,然后删除这个inputText运行一下,效果如下:如下图,在角色管理里,是否超管字段,表格里竟然显示1、2,这样肯定不合要求了解决办法如下:表格转化显示方式选
6、中table 里sfcg column 里的outputText,点击Value右边的改为#row.Sfcg = 1 ? 是 : 否运行效果如下:好了,在这里请你先完成角色表、部门表、代码集表的全部单表增删改查,如果你不会,请参考ADF开发入门教程-单表CRUD.doc下面就是用户的CRUD(增删改查)了用户表用户表描述为什么用户不是单表CRUD呢?因为在页面展现除了用户表外,还会有角色表、部门表的信息,在新增用户时,也是保存用户的角色与部门信息;有什么数据库结构不明白的,请置顶看看数据库PDM图请看以下SQL语句与查询结果,一个用户有多个角色、多个部门如果“多角色用户”,它有两个角色(角色之
7、前用,分开),两个部门(部门之前用,分开)在数据库创建视图这是由一个视图查出来的,下面我们要建立两个视图create or replace view role_user_bm asselect tt.zjid,tt.mm,tt.sfqy,tt.yhlx,tt.yhzh,tt.xm,tt.xb,tt.lxdh,tt.gh,wmsys.wm_concat(jsmc) yhjsmc from( select tt.* ,js.jsmc from (select yh.*,ur.jsid from xtgl_yhb yh left join xtgl_yhjs ur on yh.zjid = ur.z
8、jid ) tt left join xtgl_jsb js on js.jsid = tt.jsid) tt group by zjid,mm,sfqy,yhlx,yhzh,xm,xb,lxdh,gh;-华丽的分隔线-create or replace view role_user_bm1 asselect ss.zjid,ss.mm,(CASE WHEN ss.sfqy=0 THEN 禁用 WHEN ss.sfqy=1 THEN 启用 END)sfqy, (CASE WHEN ss.yhlx=1 THEN 学生 WHEN ss.yhlx=2 THEN 教职工 else 其他 END)yhl
9、x,ss.yhzh,ss.xm, ss.xb, ss.mc as xbmc, ss.lxdh,ss.gh,ss.yhjsmc,wmsys.wm_concat(bmmc) bmmc1 from( select tt.*,bm.bmmc from (select rub.*,yb.bmid ,dmj.mc from role_user_bm rub left join xtgl_yhbm yb on rub.zjid = yb.zjid left join xtgl_dmj dmj on dmj.dmjid = rub.xb ) tt left join xtgl_bm bm on bm.bmid
10、 = tt.bmid) ss group by zjid,mm,sfqy,yhlx,yhzh,xm,xb,lxdh,gh,yhjsmc,mc;请依照顺序建立效果图你可以查询一下结果,右击选择Query data在项目里创建VO这是基于视图的VO在项目里,在EO包里右击选择New Entity Object点击Browse.选择ROLE_USER_BM1只要选择在数据库创建好的ROLE_USER_BM1,点击OK记得也选择好包名点击next,再点击next将Zjid设计了主键,Primary Key一直点击next,直到如下图,设计如下图所示,点击finish(为了方便以后的查看,在这里请注意包
11、名)效果如下图建立页面新建一个yhb.jspx拖入Panel Collection将RoleUserBm1View1拖入到页面选择ADF Read-only Table在这里要注意一下:你可以去用视图查询一下,如下图的查询结果,XB是姓名的代码集,XBMC是姓名的名称,用户要看的是名称而不是代码集(。 用户知道139是什么吗?)所以在Edit Table Columns时,把Xb删除掉,把Xbmc留下,最把Xbmc顺序位置调上一些,(你也根据需求改变一下各各字段顺序)结果如下图:再拖入2个toolButton页面效果图如下图运行效果图如下在页面拖入popup、dialog,再将XtglYhbV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADF 开发 入门教程 多表
限制150内