`

MBean调用存储过程

 
阅读更多
批量新增,table可多选操作

    /**
     * 批量新增操作
     * @param actionEvent
     */
    public void addDialogListener(ActionEvent actionEvent) {
        try {
            List<Row> selectRows = ADFUtils.getTableSelectedRows(richTable); //选中的多行专业数据
            if (selectRows.size() == 0) {
                Noty.error(ErrorStringKey.UNSELECTROW_TIPS);
                return;
            }
            String njdm = (String)ADFUtils.getSelectListValueOne("XtglJxdmjNjdmView1","Dm"); //年级代码
            String xqdm = (String)ADFUtils.getSelectListValueOne("XqjbsjzlLov1","Xqdm"); //校区代码
            String dwdm = (String)ADFUtils.getBoundAttributeValue("Ssdw");//单位基本信息代码
            String zyfxdms = "";
            for (Row row : selectRows) {
                String zyfxdm = (String)row.getAttribute("Zyfxdm");
                zyfxdms += zyfxdm+",";
            }
            dmjServiceAMImpl am = (dmjServiceAMImpl)ADFUtils.findIterator("XtglNjzyxxbVO1Iterator").getViewObject().getApplicationModule();
            String stmt = "BEGIN XTGL_NJZYXXB_ADD(?,?,?,?,?); END;";
            java.sql.CallableStatement st = null;
            try {
                st = am.getDBTransaction().createCallableStatement(stmt, 0);
                st.setString(1, zyfxdms); //传入参数 
                st.setString(2, njdm); 
                st.setString(3, xqdm); 
                st.setString(4, dwdm); 
                st.registerOutParameter(5, Types.NUMERIC);
                st.execute();
                if(!st.getString(5).equals("0")){
                    ADFUtils.executeByOperation("Commit");
                }
                ADFUtils.findIterator("XtglNjzyxxbVO1Iterator").executeQuery();
                JSFUtils.refresh(table);
                JSFUtils.refresh(richToolbar);
                JSFUtils.addFacesInformationMessage(ErrorStringKey.formInternationString(ErrorStringKey.BATCH_SCUUESS) + "," + 
                                                    ErrorStringKey.formInternationString(ErrorStringKey.ADDNUM_TIPS) + st.getString(5));
            } catch (java.sql.SQLException s) {
                s.printStackTrace();
                throw new oracle.jbo.JboException(s);
            } finally {
                try {
                    if (st != null) {
                        st.close();
                    }
                } catch (java.sql.SQLException s2) {
                    throw new oracle.jbo.JboException(s2);
                }
            }
            JSFUtils.closePopup(addPop);//成功后关闭pop
        } catch (Exception e) {
            log.severe(e);
            Noty.error(ErrorStringKey.OPERATOR_ERROR);
        }
    }

 

create or replace procedure XTGL_NJZYXXB_ADD(p_zyfxdms in varchar2,
                                             p_njdm    in varchar2,
                                             p_xqdm    in varchar2,
                                             p_dwdm    in varchar2,
                                             count_num out number) is
/**
*  年级专业批量新增
*  2015年7月29日

p_zyfxdms 专业方向代码集
p_njdm 年级代码
p_xqdm 校区代码
p_dwdm 单位代码
*/                                           
  count_start number;  --记录批量插入前数量
  count_end   number;  --记录批量插入后数量
begin
  select count(*) into count_start from xtgl_njzyxxb;
  --批量插入操作
  INSERT INTO xtgl_njzyxxb
    (Njzydm,
     Njzymc,
     Nj,
     Zyfxdm,
     Sfxtzfx,
     Sfqy,
     Xqdm,
     Ssdw,
     Xz,
     Pyccm,
     Sfsd,
     Zdzt)
    SELECT p_njdm || Zyfxdm,
           p_njdm || Zyfxmc,
           p_njdm,
           Zyfxdm,
           Sfxtzfx,
           '1',
           p_xqdm,
           p_dwdm,
           Xz,
           Pycc,
           '0',
           '0'
      FROM XTGL_ZYFXXXSJZL
     WHERE zyfxdm not in
           (SELECT zyfxdm FROM xtgl_njzyxxb WHERE nj = p_njdm)
       and zyfxdm in
       --使用正则函数regexp_substr拆分字符串, eg将'1,2,3'拆分成'1','2','3'的集合。
           (select regexp_substr(p_zyfxdms, '[^,]+', 1, rownum)
              from dual
            connect by rownum <=
                       length(regexp_replace(p_zyfxdms, '[^,]', null)));
  --统计插入数量
  select count(*) into count_end from xtgl_njzyxxb;
  count_num := count_end - count_start;

end XTGL_NJZYXXB_ADD;

 

摘自:年级专业方向信息模块

分享到:
评论

相关推荐

    JMX(一)-------MBean server

    3. **操作MBean**: 通过MBean Server,我们可以调用MBean的方法,修改其属性,或者获取其状态信息。 4. **通知服务**: MBean Server支持订阅和发布通知,当MBean的状态发生改变时,可以向注册的监听器发送通知。 5...

    JMX IN ACTION(七)

    - **MBean持久化**:Model MBean允许设置保存和恢复MBean状态的存储策略,这使得在系统重启后能够恢复MBean的状态。 - **属性值缓存**:Model MBean可以缓存属性值,提高性能,特别是在频繁访问但更改不频繁的场景下...

    jmx in action

    - MBean 服务器作为 JMX 架构的核心组件,负责管理和存储 MBean 实例。 - 开发者可以通过 MBean 服务器注册、查询、管理 MBean 对象。 - MBean 服务器还提供了安全性和事务支持等功能。 - **JMX 在资源管理中的...

    MBean Property Configurator-开源

    2. **数据源集成**:除了静态文件外,MBean Property Configurator还能连接到数据源获取配置信息,这在需要动态更新或数据库存储配置的情况下非常有用。 3. **XML节点配置**:通过解析XML节点来获取配置信息,使得...

    JMX SPRING

    - **MBean Server**:管理MBean的中心节点,负责MBean的注册、查询、调用其操作等功能。 - **MBeanInfo**:描述了MBean的属性、操作、构造器和通知信息。 - **Notification**:MBean发送的事件,用于向管理者报告...

    JMX 在GlassFish中的应用

    JMX的核心思想是通过**MBeans**(Managed Beans)来表示可管理的资源,以及通过**MBean服务器**来存储和管理这些MBeans。 **GlassFish**是一个开源的应用服务器,它不仅支持Java EE标准,还引入了一系列增强功能,...

    JMX应用技术架构系统(包括具体开发说明)

    - **MBean Server**:管理MBean的核心,存储和操作MBeans,处理客户端请求。 - **管理客户端**:通过连接器与MBean Server交互,执行管理操作。 ### 3.2 JMX操作模型 JMX操作模型基于"查找、操作、通知"的概念: - ...

    java远程控制(注释版)

    2. **MBean Server**:运行MBeans的容器,它负责实例化MBeans、执行它们的操作以及存储MBeans的信息。 3. **MBean信息对象**:描述MBean的属性、操作和通知,帮助MBean与外界交互。 4. **JMX连接器**:提供客户端...

    JMX1.4 规范 翻译 第一章(介绍)(至1.6节)

    所有对MBeans的操作都通过MBean服务器进行,包括创建、删除、查询和调用MBean的方法。 ### 4. MBean代理 MBean代理是访问MBean服务器的一种方式,它提供了更抽象的接口,简化了对MBeans的操作。JMX API提供了`...

    JMX in Action

    3. **操作 MBean**: 通过 MBean 服务器提供的 API 来操作已经注册的 MBeans,例如获取属性值或调用操作方法。 #### 构建基础:MBeans的基础概念 第三章深入探讨了 MBeans 的基础概念和技术细节。这包括了: 1. **...

    《jmx技术介绍》配套源代码

    MBean Server是JMX的核心,它负责存储和管理MBeans。开发者可以自定义MBean Server,但通常使用Java提供的内置实现。MBean Server提供了诸如查询、通知、生命周期管理和操作调用等基本功能。 5. JMX连接器和协议:...

    ESB应用Web_Service_Consumer

    在XML代码中,可以看到三个不同的`QueueService` MBean(管理 beans)被定义,它们分别对应于三个不同的消息队列:`webserviceconsumer1Esb`、`webserviceconsumer1EsbReply`和`webserviceconsumer1RequestGw`。...

    JMX in action.pdf

    2. **MBeanServer**:这是一个容器,用来存储和管理所有的 MBean。它负责接收来自客户端的请求,并将这些请求转发给相应的 MBean。 3. **连接器**:用于远程访问 MBeanServer 的组件。通过连接器,管理员可以从远程...

    jmxtools.jar jmxri.jar

    可以使用JConsole或其他工具进行可视化监控,或者通过编程方式调用MBean的方法。 4. **配置安全性和访问控制**:JMX支持安全性和访问控制,允许你限制哪些用户或角色可以访问特定的MBean。 5. **通知机制**:JMX还...

    一台机器部署多个jboss说明

    2. **数据存储**:为了避免数据混淆,每个JBoss实例的数据存储位置也应分开管理。 3. **日志文件**:每个实例的日志文件路径也应独立,以方便后期的日志管理和问题排查。 通过上述步骤,我们可以在一台机器上成功...

    JVM JMX java

    2. **栈内存管理**:每个线程都有一个独立的栈,用于存储方法调用帧,包括局部变量、操作数栈和方法返回地址。 3. **垃圾回收**:JVM自动进行垃圾回收,释放不再使用的对象所占用的内存。GC策略包括分代收集、标记-...

    Java Management Extensions管理扩展原理解析

    2. **适配层**:MBean服务器是JMX架构的核心,它负责注册MBeans,执行MBean操作,以及存储和检索MBean的信息。 3. **接入层**:提供了多种协议和API,使得管理者可以从本地或远程访问MBean服务器。 ### Standard ...

    The definitive guide to JProfiler

    JProfiler的MBean浏览器允许开发者浏览和监控服务器应用程序中的MBean,提供了一种远程分析的方式。离线分析功能则允许开发者分析那些预先录制的数据,无需JVM持续运行。 高级CPU分析视图为开发者提供了多种视角来...

Global site tag (gtag.js) - Google Analytics