• myBatIs.Net 调用Oracle 存储过程返回游标


    找了好久,网上也没示例,全是java的,没办法,后来看到一个网上别人写的例子。

    http://www.myfirm.cn/blog/article/Control/13.html

    上面照套还是出错,我X,没找到类的属性,那么灵机一动,应该是个结果集,就List了,给类加个属性

    搞定。

    public class Product
        {
            public int ProductId { get; set; }
            public string ProductName { get; set; }
    
            public List<Product> result { get; set; }
        }  
    }

    xml配置

     <resultMaps>
        <!-- 映射可以用在下面的语句设置中 -->
        <resultMap id="GetAllProductsResult" class="Product">
          <result property="ProductId" type="int" column="ProductId" dbType="number"  />
          <result property="ProductName" type="string" column="ProductName" dbType="varchar"  />
        </resultMap>
    
      </resultMaps>
    
      <parameterMaps>
        <!--注意:parameterMap中的参数个数和顺序要和ProcGetPersonByName存储过程中的一致-->
        <parameterMap id="ParamSelect" class="Product">
    
          <parameter property="ProductName" coloumn="VPRODUCTNAME"/>
         
          <!--设置返回的数据,数据库类型为Cursor-->
          <parameter property="result" column="P_CUR"  dbType="Cursor"  direction="Output"/>
          
         
        </parameterMap>
      </parameterMaps>
    
      <statements>
        <procedure id="ProcGetProductbyName" parameterMap="ParamSelect"  resultMap="GetAllProductsResult">
          ProcGetProductbyName
        </procedure>

    Oracle过程

    CREATE OR REPLACE PROCEDURE PROCGETPRODUCTBYNAME(VPRODUCTNAME IN VARCHAR,
                                                     P_CUR        OUT SYS_REFCURSOR) AS
    BEGIN
    
      OPEN P_CUR FOR
        SELECT * FROM PRODUCT T WHERE T.PRODUCTNAME LIKE VPRODUCTNAME || '%';
    
    END;

    搞定。

  • 相关阅读:
    jmeter(二十三)分布式测试
    jmeter(二十二)内存溢出原因及解决方法
    jmeter(二十一)jmeter常用插件介绍
    jmeter(二十)阶梯式加压测试
    jmeter(十九)HTTP属性管理器
    《jmeter:菜鸟入门到进阶》系列
    jmeter(十八)关联之XPath Extractor
    <转>jmeter(十七)目录结构
    jmeter(十六)配置元件之计数器
    Springmvc中参数的绑定
  • 原文地址:https://www.cnblogs.com/Chareree/p/4171068.html
Copyright © 2020-2023  润新知