文档章节

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

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:39
字数 335
阅读 113
收藏 0

存储过程:

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参数,而dreturn参数。

需要注意的事项:

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

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

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

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

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

 

本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/9296477

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
加载中

评论(1)

i
itxx2016
推荐国内最流行的ibatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
mybatis调用视图和存储过程

现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发。MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常优秀的持久层框架。它可利用简单的XML或注解用语...

mifans
2016/10/20
67
0
储存过程简介

存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代...

zh151832
2016/02/02
67
0
ASP调用存储过程访问SQL Server

ASP和存储过程(Stored Procedures)的文章不少,不过我怀疑作者们是否真正实践过。我在初学时查阅过大量相关资料,发现其中提供的非常多方法实际操作起来并不是那么回事。对于简单的应用,这些...

xiahuawuyu
2012/07/10
66
0
Oracle专题14之存储过程与函数

1、存储过程与函数的概述 存储过程和存储函数:是存储在数据库中的被命名的PLSQL块,供所有用户程序调用,完成特定功能的子程序。 a、存储过程和存储函数的区别 是否使用return返回值。(即存...

极客微信条
2017/12/19
0
0
mybatis Sqlserver 存储过程 结果集

Sqlserver返回结果集的存储过程调用方式: 一、存储过程: 二、Mybatis的映射文件 三、注意的2点: 1、要把结果集放到parameterMap中,并且要设置jdbcType为“OTHER” 2、在中要写上resultM...

鉴客
2011/10/12
3.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

Experts say the weaker pound is drawing investors to the UK tech sector

UK tech companies secured a record £5.5bn in foreign investment in the first seven months of this year, research shows. This was more than the amount invested per capita in th......

wowloop
23分钟前
5
0
Add support for Android 9-patch images in BorderImage

The 9-patch image implementation in Qt Quick Controls 1 is an internal implementation detail of the Android style. It cannot handle .9.png image files out of the box, but takes ......

shzwork
28分钟前
4
0
c/c++日期时间处理函数小结

日期时间处理函数: 日期时间转为字符串 strftime/std::put_time 字符串解析成日期时间 strptime/std::get_time 时间结构转换:time_t->tm localtime:time_t->tm 时间结构转换:tm->time_t ...

chuqq
32分钟前
5
0
Apache Flink 进阶入门(二):Time 深度解析

前言 Flink 的 API 大体上可以划分为三个层次:处于最底层的 ProcessFunction、中间一层的 DataStream API 和最上层的 SQL/Table API,这三层中的每一层都非常依赖于时间属性。时间属性是流处...

大涛学长
33分钟前
4
0
创龙基于Xilinx Artix-7系列FPGA处理器

SOM-TLA7是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的核心板,可配套广州创龙Artix-7开发板使用。核心板尺寸仅70mm*50mm,采用沉金无铅工艺的10层板设计,专业的PCB Layout保证信号...

Tronlong创龙
39分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部