MyBatis调用存储过程,含有返回结果集、return参数和output参数
存储过程:
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参数相关推荐
- java使用mybatis 调用存储过程返回一个游标结果集
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7 版本:6.0,4.5 文档用途 mybat ...
- jdbctemplate mysql 分页查询 返回list对象_spring jdbctemplate调用存储过程,返回list对象...
spring jdbctemplate调用存储过程,返回list对象 方法: /** * 调用存储过程 * @param spName */ @SuppressWarnings("unche ...
- spring jdbctemplate调用存储过程,返回list对象
注:本文来源于< spring jdbctemplate调用存储过程,返回list对象 > spring jdbctemplate调用存储过程,返回list对象 方法: /*** 调用存储 ...
- php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题
$stmt = $db->prepare("CALL pro_test(?,@?)");$stmt->bindParam(1, $name);$stmt->bin ...
- mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)
一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...
- Java调用存储过程(返回:简单类型VARCHAR、自定义对象STRUCT、列表数组VARRAY)
ORACLE 存储过程 练习七 数组专题 写在前面的废话 由于工作需要经常用到 ORACLE存储过程 其中数组是不可避免的一组成元素.那么让我们来体会一下 ORACLE存储过程的数组到低是如何使用的. ...
- pgsql的存储过程调用mysql_PostgreSQL中调用存储过程并返回数据集实例
这里用一个实例来演示PostgreSQL存储过程如何返回数据集. 1.首先准备数据表 //member_category create table member_category(id serial, ...
- MyBatis调用存储过程,MyBatis调用函数的使用方法
MyBatis调用存储过程,MyBatis调用函数的使用方法 一.MyBatis 调用存储过程 1.不带参数的 <select id="batchAnalyzeAll" st ...
- mybatis调用存储过程报错The error occurred while setting parameters
最近项目用mybatis调用存储过程,在使用的过程中出现了一个错误:The error may involve com.stockcommission.dao.CommissionMapper.par ...
最新文章
- linux 模拟生成 CAN 设备
- 动态改变_【学校动态】在坚守与改变中追求卓越——礼县二中召开2019—2020学年度秋季学期第二次全体教职工大会...
- 你必须具有权限才能读取此对象_win10中随心所欲设置文件/文件夹访问权限,可以轻松做到,并不难...
- es6 数组合并_对比 ES5,学习 ES6(一)
- 【JEECG技术文档】表单配置-树形表单
- un3.0服务器文档,unturned3.0服务器指令是什么?
- 退出android app时界面残留影响,【Android】App 或 Activity 销毁重建的状态恢复对回调带来的影响...
- php实现最后登录时间,php实例之基于Cookie的登录表单和获取最后登录时间
- Python——Selenium Chrome Driver配置
- C++ 事件驱动型银行排队模拟
- Makedown文件保存问题
- C语言实现巴特沃斯IIR滤波器
- Android编程怎么打开,安卓手机如何开启开发者模式?简单三步骤教你解决!
- LTK5325 2X5.3W双声道升压G类音频功率放大器
- 没有计算机年代科学家如何计算,难倒了无数科学家的 三体问题
- java面试教程视频
- MATLAB text的“关键字”
- 戴口罩人脸识别、高精度人脸识别解决方案
- 侯震老师--沪师经纪
- 软件设计概念-指导原则|Aspects|设计元素