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>


  • 相关阅读:
    阻止用户复制页面上的文字的几种方法
    js设置聊天信息停留在最底部
    js动态删除表格中的某一行
    XmlSerializer vs DataContractSerializer: Serialization in Wcf
    WCF Service Binding Explained
    Visual Studio设置远程调试
    Could not download the Silverlight application
    .NET 中的三种接口实现方式
    化零为整WCF(9) 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)
    化零为整WCF(14) 事务(Transaction)
  • 原文地址:https://www.cnblogs.com/fyq891014/p/3294813.html
Copyright © 2011-2022 走看看