zoukankan      html  css  js  c++  java
  • mybatis 调用oracle存储过程如何返回out参数值

    调试了半天,其实整体用map传入传出也挺简单,

    主要是调用存储过程 select标签里平时习惯不写 statementType="CALLABLE",调用没有out参数时也能正常用,

    调用有out参数的过程时导致一直报java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 6

    网上的很多文章写的挺啰嗦,

    parameterMap要是传入的就是HashMap里面也都是基本类型根本不用写,mabatis会自动识别类型。

    jdbcType=INTEGER, mode=OUT也只需要给OUT参数写上,IN参数也不必要写。

    每次看到网上的代码写了一堆<parameterMap id="canCustomerSubscribeParams" type="map">就感到无奈

    dao接口定义:

    void sellPassengerTicket(Map<String, Object> params);

    mapper xml:

    <select id="sellPassengerTicket" statementType="CALLABLE">
            CALL TicSell_SellPassengerTicket(#{p_ticketWindowId}, 
            #{p_planVoyageId},
            #{p_planBerthInfoId},
            #{p_discountTypeId},
            #{p_discountRate},
            #{p_ticketNumber, jdbcType=INTEGER, mode=OUT}
            )
        </select>

    service层调用:

    Map<String, Object> params = new HashMap<String, Object>();
            params.put("p_ticketWindowId", ticketWindowId);
            params.put("p_planVoyageId", planVoyageId);
            params.put("p_planBerthInfoId", planBerthInfoId);
            params.put("p_discountTypeId", discountTypeId);
            params.put("p_discountRate", discountRate);
            
            
            ticketSellDao.sellPassengerTicket(params);
            return params.get("p_ticketNumber").toString(); // 返回票号
  • 相关阅读:
    JavaScript获取http,http://请求协议头,域名,端口,url
    JAVA Pattern正则获取大括号中内容,substring字符串截取获取大括号中内容
    系统时间相关
    简单搭建nfs
    电信电话相关
    windows常用设置
    sort用法
    vim查询替换相关
    vim常用命令 技巧
    编绎vim8.2+deepin v15.11
  • 原文地址:https://www.cnblogs.com/coolzdp/p/7812918.html
Copyright © 2011-2022 走看看