`

ADF内存查询及绑定数据

    博客分类:
  • ADF
ADF 
阅读更多
    /**
     *
     * 扫描报到证号执行方法
     */
    public void bdzAction(ClientEvent clientEvent) {
        /**
         * Bindings做法步骤
         * 1 根据bdzh内存查询
         * 2 使用ADFUtils.setBoundAttributeValue("")
         * 3 执行Commit方法: ADFUtils.executeByOperation("Commit")
         */
        
        //业务层操作,不推荐,因为UI-Bindings-BC,这三层关系,操作BC层结果不一定会响应到UI,操作Bindings会立刻响应到UI层
//        DCIteratorBinding dcBinding = ADFUtils.findIterator("JyglBdzView1Iterator");
//        JyglBdzViewImpl vo = (JyglBdzViewImpl) dcBinding.getViewObject();
//        //        String bdzh = (String) JSFUtils.getElExpression("#{bdzrkBean.bdzh}");
//        String bdzh = (String) clientEvent.getParameters().get("bdzValue");
//        String yhbh = UserOperation.getYhbh();
//        vo.setWhereClause("Bdzh = '" + bdzh + "'");
//        vo.executeQuery();
//        if (vo.getEstimatedRowCount() > 0) {
//            Row row = vo.first();
//            row.setAttribute("Rkr", yhbh);
//            row.setAttribute("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//            row.setAttribute("Bdzzt", 1);
//            vo.getDBTransaction().commit();
//        } else {
//            JSFUtils.addFacesInformationMessage("不存在该报到证");
//        }
//        vo.setWhereClause(null);
//        this.setBdzh("");
//        ADFUtils.refreshTable("JyglBdzView1Iterator", (RichTable) JSFUtils.findComponentInRoot("t2"));//运行时有错,第二个参数改成this.getRichTable()
//        ADFUtils.refresh(JSFUtils.findComponentInRoot("it1"));
        
        //绑定层操作,优先推荐,内存查询可用ViewCriteria(有公共封装类调用,初学最好暂时不调用,自己写),setWhereClause(本身是数据库查询的,但是setQueryMode可设内存查), RowMatch查询
        //优先使用ViewCriteria,这种查询方式不会影响到原来的结果集
        String bdzh = this.getBdzh();
        String yhbh = UserOperation.getYhbh();
        System.out.println("报到证:" + bdzh);
        DCIteratorBinding dcBinding = ADFUtils.findIterator("JyglBdzView1Iterator");
        JyglBdzViewImpl vo = (JyglBdzViewImpl) dcBinding.getViewObject();
        
        //1,ViewCtriteria查询
        ViewCriteria vc = vo.createViewCriteria();
        vc.setName("criteria");
        ViewCriteriaRow vcRow = vc.createViewCriteriaRow();
        ViewCriteriaItem item = vcRow.ensureCriteriaItem("Bdzh");
        item.setOperator("=");
        item.setValue(bdzh);
        vc.add(vcRow);
        vo.applyViewCriteria(vc);
        vo.executeQuery();
        vo.findByViewCriteria(vc, -1, ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
        if (vo.getEstimatedRowCount() > 0) {
            ADFUtils.setBoundAttributeValue("Rkr", yhbh);
            ADFUtils.setBoundAttributeValue("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
            ADFUtils.setBoundAttributeValue("Bdzzt", 1);
            ADFUtils.executeByOperation("Commit");
        } else {
            JSFUtils.addFacesInformationMessage("不存在该报到证");
        }
        vo.removeViewCriteria("criteria");

        //2,setWhereClause查询(有问题:页面列表结果只显示EO单表内容,VO是多表关联的话,其他表的字段值没有显示)
//        vo.setWhereClause("Bdzh = '" + bdzh + "'");
//        vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
//        vo.executeQuery();
//        if (vo.getEstimatedRowCount() > 0) {
//            ADFUtils.setBoundAttributeValue("Rkr", yhbh);
//            ADFUtils.setBoundAttributeValue("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//            ADFUtils.setBoundAttributeValue("Bdzzt", 1);
//            ADFUtils.executeByOperation("Commit");
//        }
//        vo.setWhereClause(null);
    
        //3,RowMatch查询,只查询内存(也存在问题,和setWhereClause一样)
//        RowMatch rm = new RowMatch("Bdzh = '" + bdzh + "'");
//        vo.setRowMatch(rm);
//        vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
//        vo.executeQuery();
//        if (vo.getEstimatedRowCount() > 0) {
//            ADFUtils.setBoundAttributeValue("Rkr", yhbh);
//            ADFUtils.setBoundAttributeValue("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//            ADFUtils.setBoundAttributeValue("Bdzzt", 1);
//            ADFUtils.executeByOperation("Commit");
//        }
//        vo.setRowMatch(null);
        System.out.println(vo.getQuery());
        this.setBdzh("");
        ADFUtils.refreshTable("JyglBdzView1Iterator", this.getRichTable());
        ADFUtils.refresh(JSFUtils.findComponentInRoot("it1"));
    }

 

    /**
     * 判断数据库中是否存在该学号学生
     */
    private boolean isExit(String xh) {
        boolean flag = false;
        XsxxglXsjbxxVOImpl vo =
            (XsxxglXsjbxxVOImpl) ADFUtils.findIterator("XsxxglXsjbxxVO1Iterator").getViewObject(); //学生基本信息vo
        ViewCriteria vc = vo.createViewCriteria();   
        vc.setName("criteria");   
        ViewCriteriaRow vcRow = vc.createViewCriteriaRow();   
        ViewCriteriaItem item = vcRow.ensureCriteriaItem("Xh");   
        item.setOperator("=");   
        item.setValue(xh);   
        vc.add(vcRow);   
        RowIterator it = vo.findByViewCriteria(vc, -1, vo.QUERY_MODE_SCAN_DATABASE_TABLES);
        if (it.getRowCount() > 0) {   
            flag = true;
        }
        vo.removeViewCriteria("criteria");  
        return flag;
    }

 

    /**  
     * 查询年级专业是否有些专业还没有设置学费 
     */  
    private boolean hasEmptyFy(String njAttr) {
        boolean flag = false;   
        SfglXfViewImpl vo =   
            (SfglXfViewImpl) ADFUtils.findIterator("SfglXfView1Iterator").getViewObject(); //学费vo   
        ViewCriteria vc = vo.createViewCriteria();      
        vc.setName("criteria");      
        ViewCriteriaRow vcRow = vc.createViewCriteriaRow();   
        vcRow.setAttribute("Nj", "in ("+njAttr+")");
        vc.add(vcRow); 
        ViewCriteriaRow vcRow2 = vc.createViewCriteriaRow();
        vcRow2.setConjunction(ViewCriteriaComponent.VC_CONJ_AND);
        vcRow2.setAttribute("Fy", "is null");
        vc.add(vcRow2);   
        RowIterator it = vo.findByViewCriteria(vc, -1, vo.QUERY_MODE_SCAN_DATABASE_TABLES); 
        System.out.println("count:"+it.getRowCount());
        if (it.getRowCount() > 0) {      
            flag = true;   
        }   
        vo.removeViewCriteria("criteria");     
        return flag;   
    }

 vcRow2.setConjunction(ViewCriteriaComponent.VC_CONJ_AND);  这句是连接关系

分享到:
评论

相关推荐

    ADF实现多选框及分页

    同时,可以通过绑定`rowSelection`属性来获取用户选定的行数据。 ```xml selectionMode="Multiple" rowSelection="#{bindings.ResultSet.collectionModel.selectedItems}"> <!-- 表格列定义 --> ``` 在这里,`...

    ADF上传下载

    在ADF中,文件上传下载功能是常见且重要的业务需求之一,尤其在处理多媒体文件、文档或用户数据时更为关键。本文将详细解析ADF中的文件上传下载实现机制,包括页面代码示例、管理Bean代码编写以及如何调整文件上传...

    arcengine内存图层创建(全)

    4. 将数据集添加到图层:将创建的IGeometry对象绑定到图层的数据源,如IFeatureLayer的FeatureClass属性。 5. 添加图层到地图:使用IMap接口的AddLayer方法将内存图层添加到地图中,以便在地图上显示。 三、实例:...

    vega.rar_mytown.adf_vega_vega API

    - 如何将数据与Vega图表绑定,以及Vega库的API调用方法。 - Visual Studio的项目管理和编译过程,这对于Windows平台的开发非常重要。 通过这个示例,开发者可以掌握如何将Vega集成到他们的项目中,创建自定义的可视...

    2013阿里巴巴面试经历

    面试中被问及如何实现,Oracle ADF基于Model-View-Controller (MVC)架构,提供数据绑定、业务组件和用户界面组件,简化开发过程。 2. **Struts2框架**:Struts2是Java Web开发中广泛使用的MVC框架。面试中问道其...

    基于c#的Arcobject的一个实例

    在AoTest这个示例项目中,可能包含了创建一个简单的GIS应用的完整代码,如打开地图文档、加载数据、执行查询和显示结果等。通过研究这个项目,开发者可以进一步了解如何将ArcObjects集成到C#应用中,从而构建功能...

    Jdeveloper 开发手册

    Oracle ADF 是一个基于Java EE的全栈开发框架,JDeveloper提供了ADF工具集,简化了UI组件的创建、数据绑定和业务逻辑的构建。ADF允许开发者快速构建企业级应用,尤其是与Oracle数据库集成的应用。 6. **SOA集成** ...

    weblogic资料

    - Coherence:Oracle的内存数据网格产品,可以与WebLogic结合提升缓存和数据共享性能。 5. **WebLogic的部署模式**: - 单服务器模式:适合小型项目或测试环境。 - 集群模式:适用于大型企业,通过多台服务器...

    精品资料(2021-2022年收藏)南宁中级法院办公设备采购.doc

    - 安全设备:防泼溅键盘,硬盘缓冲防护,主动硬盘保护,指纹识别器(可绑定应用/网址) 2. 操作系统与软件要求: - 操作系统:预装正版Windows 7,带一键还原,可自定义备份 - 开机LOGO定制:显示用户单位名称或...

    dotNetFx40_Full_x86_x64

    5. **WPF(Windows Presentation Foundation)**:是.NET Framework的用户界面框架,提供丰富的图形渲染、数据绑定和多媒体支持。 6. **ASP.NET 4**:增强了Web应用程序开发的能力,引入了MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics