存储过程:

use base_passport

Go

create proc yhj_test

@input_a int,

@input_b int,

@output_c int out

as

begin

select * from config.city;

set @output_c = @input_a*@input_b;

return @input_a+@input_b;

end

Mybats配置:

<resultMap type="Java.util.HashMap" id="resultMap">

<result column="city_key" property="cityKey"javaType="java.lang.Integer" jdbcType="INTEGER"/>

<result column="province_key" property="provinceKey"javaType="java.lang.Integer" jdbcType="INTEGER"/>

<result column="city_name" property="cityName"javaType="java.lang.String" jdbcType="VARCHAR"/>

</resultMap>

<select id="testByProc" statementType="CALLABLE"parameterType="java.util.HashMap" resultMap="resultMap">

<![CDATA[

{#{d,mode=OUT,jdbcType=INTEGER}=call dbo.yhj_test(

#{a,mode=IN,jdbcType=INTEGER},

#{b,mode=IN,jdbcType=INTEGER},

#{c,mode=OUT,jdbcType=INTEGER}

)}

]]>

</select>

Java代码

Map<String, Object> paramMap = new HashMap<String, Object>();

paramMap.put("a", 2);

paramMap.put("b", 3);

List<City> citys = (List<City>) getTemplate().selectList(getNameSpaceAndMethod("testByProc"), paramMap);

return citys;

通过以上代码我们即可获取对应的结果集,return参数和output参数。其中return参数和output参数放在传入的paramMap中,运行结果如下:

c是存储过程的output参数,而d为return参数。

需要注意的事项:

1、  存储过程的参数和名称无关,只和顺序有关系

2、  存储过程的output参数,只能通过传入的map获取

3、  存储过程返回的结果集可直接用返回的map接收

4、  存储过程的return结果需要使用?=call procName(?,?)的第一个参数接收,需要指定对应的mode为OUT类型

5、  存储过程对应的数据类型为枚举类型,需要使用大写,如VARCHAR

MyBatis调用存储过程,含有返回结果集、return参数和output参数相关推荐

  1. java使用mybatis 调用存储过程返回一个游标结果集

    瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7 版本:6.0,4.5 文档用途 mybat ...

  2. jdbctemplate mysql 分页查询 返回list对象_spring jdbctemplate调用存储过程,返回list对象...

    spring jdbctemplate调用存储过程,返回list对象 方法: /** * 调用存储过程 * @param spName */ @SuppressWarnings("unche ...

  3. spring jdbctemplate调用存储过程,返回list对象

    注:本文来源于< spring jdbctemplate调用存储过程,返回list对象 > spring jdbctemplate调用存储过程,返回list对象 方法: /*** 调用存储 ...

  4. php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题

    $stmt = $db->prepare("CALL pro_test(?,@?)");$stmt->bindParam(1, $name);$stmt->bin ...

  5. mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)

    一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...

  6. Java调用存储过程(返回:简单类型VARCHAR、自定义对象STRUCT、列表数组VARRAY)

    ORACLE 存储过程 练习七 数组专题 写在前面的废话 由于工作需要经常用到 ORACLE存储过程 其中数组是不可避免的一组成元素.那么让我们来体会一下 ORACLE存储过程的数组到低是如何使用的. ...

  7. pgsql的存储过程调用mysql_PostgreSQL中调用存储过程并返回数据集实例

    这里用一个实例来演示PostgreSQL存储过程如何返回数据集. 1.首先准备数据表 //member_category create table member_category(id serial, ...

  8. MyBatis调用存储过程,MyBatis调用函数的使用方法

    MyBatis调用存储过程,MyBatis调用函数的使用方法 一.MyBatis 调用存储过程 1.不带参数的 <select id="batchAnalyzeAll" st ...

  9. mybatis调用存储过程报错The error occurred while setting parameters

    最近项目用mybatis调用存储过程,在使用的过程中出现了一个错误:The error may involve com.stockcommission.dao.CommissionMapper.par ...

最新文章

  1. linux 模拟生成 CAN 设备
  2. 动态改变_【学校动态】在坚守与改变中追求卓越——礼县二中召开2019—2020学年度秋季学期第二次全体教职工大会...
  3. 你必须具有权限才能读取此对象_win10中随心所欲设置文件/文件夹访问权限,可以轻松做到,并不难...
  4. es6 数组合并_对比 ES5,学习 ES6(一)
  5. 【JEECG技术文档】表单配置-树形表单
  6. un3.0服务器文档,unturned3.0服务器指令是什么?
  7. 退出android app时界面残留影响,【Android】App 或 Activity 销毁重建的状态恢复对回调带来的影响...
  8. php实现最后登录时间,php实例之基于Cookie的登录表单和获取最后登录时间
  9. Python——Selenium Chrome Driver配置
  10. C++ 事件驱动型银行排队模拟
  11. Makedown文件保存问题
  12. C语言实现巴特沃斯IIR滤波器
  13. Android编程怎么打开,安卓手机如何开启开发者模式?简单三步骤教你解决!
  14. LTK5325 2X5.3W双声道升压G类音频功率放大器
  15. 没有计算机年代科学家如何计算,难倒了无数科学家的 三体问题
  16. java面试教程视频
  17. MATLAB text的“关键字”
  18. 戴口罩人脸识别、高精度人脸识别解决方案
  19. 侯震老师--沪师经纪
  20. 软件设计概念-指导原则|Aspects|设计元素

热门文章

  1. 搭建windows的solr6服务器
  2. POJ2146 Confusing Login Names [最小字符串编辑距离]
  3. 精心收集的jQuery常用的插件1000
  4. VMware Cloud Director 严重漏洞可使整个云基础设施遭接管
  5. 苹果修复严重的代码执行漏洞,影响 iOS 和 iPadOS 操作系统
  6. 动手拆解众筹明星产品安全智能锁KeyWe后,发现它不安全且无解
  7. Lua游戏开发----游戏搭建
  8. 【DataMagic】如何在万亿级别规模的数据量上使用Spark
  9. TaskScheduler一个.NET版任务调度器
  10. android 显示Gift图片