zoukankan      html  css  js  c++  java
  • ibatis调用oracle的函数,存储过程的方法_IN_和OUT_游标

    1对于全部是in 类型的参数过程,采用下面的方法调用(ibatis版本是2.3)
    比如过程:
             

    ProcedureFlashback_Op(
    v_table_owner Varchar2,
    v_table_name Varchar2,
    v_FlashbackScnNumber,
    v_xid Varchar2,
    v_dbid number); 

    调用方法:

    <parameterMap id="tableDml_recycle"class="java.util.Map">
           <parameterproperty="owner" jdbcType="VARCHAR"
             javaType="java.lang.String" mode="IN " />
            <parameterproperty="name" jdbcType=" VARCHAR "
                javaType="java.lang.String" mode="IN " />
           <parameterproperty="scn" jdbcType="NUMBER"
                 javaType="java.math.BigDecimal" mode="IN" />
    
    <parameter property="xid"jdbcType=" VARCHAR "
                 javaType="java.lang.String" mode="IN" />
           <parameter property="dbId" jdbcType="NUMBER"
             javaType="java.math.BigDecimal" mode="IN " />
        </parameterMap>
       
        <procedure id="tableDml "      
    
     parameterMap=" tableDml_zcRecycle ">  
            {callTassetREC.Flashback_Op(?,?,?,?,?)}  
        </procedure>  


      2对于返回类型是游标 (OUT)的函数,采用如下方式调用。

    函数:

       

    Function GetFirstPageNumRows(
    v_where varchar2,
    v_dbidNumber,
    v_Numrows varchar2,
    v_queryid varchar2
    ) 
    return sys_refcursor ;

       调用方式:

      

    <parameterMap id="searchParam"class="java.util.Map">
            <parameter property="result"jdbcType="ORACLECURSOR"
            javaType="java.sql.ResultSet"mode="OUT " resultMap="auditselect_resultList" />
           
            <parameterproperty="ipAddress"
               jdbcType="varchar" javaType="java.lang.String"mode="IN" />
            <parameter property="dbId"jdbcType="NUMBER"
               javaType="java.math.BigDecimal" mode="IN"/>
            <parameterproperty="countNumber" jdbcType="NUMBER"
               javaType="java.lang.Integer" mode="IN"/>
            <parameterproperty="clientId" jdbcType="VARCHAR2"
               javaType="java.lang.String" mode="IN"/>
        </parameterMap>
    
     <functionid="firstPage" parameterMap="searchParam">  
            {? = calltlgadmin.GetFirstPageNumRows(?,?,?,?)}   (注意返回值在前面用?代表)
        </ function >

     java代码这么取值:

     

       @SuppressWarnings("unchecked")
        public List getAuditSelectByPages(Map map) {
           getSqlMapClientTemplate().queryForList("firstPage", map);//调用
            List arryList = (ArrayList)map.get("result");//取值
            return arryList;
        }

    3对于返回值为一般数据类型的函数:

    函数:

      

    Function DeleteCommand(
    v_commandid Number,
    v_commandsetid Numberdefault 0,
    v_dbid Number default 0
    ) 
    return Number ;

    采用如下方式处理(把返回值当作出参来处理OUT):

      

    <parameterMap id="CommandDeleteById"class="java.util.Map">
            <parameter property="result"jdbcType="VARCHAR"
              javaType="java.lang.String" mode="OUT" />
            <parameterproperty="commandId" jdbcType="NUMBER"
               javaType="java.lang.Integer" mode="IN" />
            <parameterproperty="commandsetId" jdbcType="NUMBER"
                javaType="java.lang.Integer"mode="IN" />
            <parameter property="dbId"jdbcType="NUMBER"
               javaType="java.math.BigDecimal" mode="IN" />
    </parameterMap>
    
    <functionid="Command_deleteById"
           parameterMap="CommandDeleteById">
           { ? = call truleadmin.DeleteCommand(?,?,?)}
    </ function>


  • 相关阅读:
    Hibernate逆向工程
    使用Hibernate连接Oracle 无法识别生成的SQL问题
    法线的变换矩阵
    搭建Struts2开发环境
    留存: struts2+jquery+json集成
    一些WebGL的资源
    9个WebGL的演示
    WPF动画制作简单的按钮动画
    C# /windowForm/WPF/SilverLight里面操作Word帮助类提供给大家
    高斯投影正反算的代码
  • 原文地址:https://www.cnblogs.com/fyq891014/p/3294813.html
Copyright © 2011-2022 走看看