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(); // 返回票号
mybatis 调用oracle存储过程如何返回out参数值的更多相关文章
- MyBatis调用Oracle存储过程
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...
- springboot+mybatis调用oracle存储过程
1 存储过程参数为VARCHAR 代码逻辑:controller层定义实体类对象entity,并entity.set给存储过程的输入参数赋值,把赋值后的实体类通过service层传到dao层,然后通过 ...
- mybatis springmvc调用oracle存储过程,返回记录集
参考: http://bbs.csdn.net/topics/390866155 辅助参考: http://www.2cto.com/kf/201307/226848.html http://blog ...
- mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析
首先根据这篇文章:http://www.cnblogs.com/coolzdp/p/7717332.html 我们知道存储过程中 SELECT * INTO 如果没有记录是不会往下执行的,直接抛出NO ...
- 调用Oracle存储过程并获取out参数值
原文: http://tech.it168.com/oldarticle/2006-04-02/200604021512359.shtml http://www.cnblogs.com/m-cnblo ...
- mybatis调用oracle存储过程的几个参考例子
首先写一个存储过程: create or replace procedure p_syn_equipment_20161205 is sqlstr ); begin --清空表 sqlstr := ' ...
- java调用oracle存储过程,返回结果集
package com.srie.db.pro; import java.sql.CallableStatement; import java.sql.Connection; import java. ...
- mybatis调用oracle存储过程 out游标类型参数 如何赋给java map
<resultMap id="ticketInfosResultMap" type="Map"> <!--result要是默认用列名的话完全不 ...
- mybatis调用oracle存储过程例子.
1.MYBATIS方法: <select id="getFlowNum" statementType="CALLABLE"> <![CDATA ...
随机推荐
- Linux学习之---Xshell
经过两周的断断续续的学习,终于把慕课网上tony老师的<Linux网络管理>基础知识学完.tony老师讲课风趣幽默,深入浅出,为老师打call!! 课程地址:https://www.imo ...
- 拓展 NLog 优雅的输送日志到 Logstash
在上上篇博客通过对aspnetcore启动前配置做了一些更改,以及对nlog进行了自定义字段,可以把请求记录输送到mysql,正式情况可能不会这么部署.因为近期也在学习elk,所以就打算做一个实例,结 ...
- SVN如何忽略dll文件和bin目录
一般来说,编译之后的结果文件都会放在bin目录下.用svn做代码管理服务器的时候,肯定不希望编译的结果文件也签入进去,因此需要在客户端配置. 在checkout目录下,在svn的子菜单中 Proper ...
- F#周报2018年第49期
新闻 ML.NET 0.8--Machine Learning for .NET .NET Core 3预览 1以及开源Windows桌面框架 .NET Core 2.2 尝试C# 8.0 .NET ...
- .NET Core开发日志——依赖注入
依赖注入(DI)不是一个新的话题,它的出现是伴随着系统解耦的需要而几乎必然产生的. 在SOLID设计原则中,DIP(Dependency inversion principle)--依赖倒置,规定了& ...
- [No0000E0]批量打开当前路径下的文件
for /r %i in ( *) do start %i
- [knowledge] big data things
http://hadoop.apache.org/ https://spark.apache.org/ https://nifi.apache.org/ https://www.cloudera.co ...
- kubernetes的Controller Manager
1. Controller Manager简介 Controller Manager作为集群内部的管理控制中心,负责集群内的Node.Pod副本.服务端点(Endpoint).命名空间(Namespa ...
- 洛谷P4495 奇怪的背包 [HAOI2018] 数论
正解:数论+dp 解题报告: 传送门! 首先看到这题,跳无数次,自然而然可以想到之前考过好几次了的一个结论——如果只考虑无限放置i,它可以且仅可以跳到gcd(p,v[i]) 举一反三一下,如果有多个i ...
- luogu4389 付公主的背包
题目链接:洛谷 题目大意:现在有$n$个物品,每种物品体积为$v_i$,对任意$s\in [1,m]$,求背包恰好装$s$体积的方案数(完全背包问题). 数据范围:$n,m\leq 10^5$ 这道题 ...