总体思路:map传值

controller:

Map<String,Object> m=new HashMap<String,Object>();
m.put("name", 'zs');
m.put("password", '55555');
cardservice.bindCard(m);
JSONObject json=new JSONObject();
//获得返回值
json.put("msg", m.get("msg"));
json.put("result", m.get("result"));

service:

@Override
public Object bindCard(Map<String,Object> m) {
try {
return cardMapper.bindCard(m);
} catch (Exception e) {
e.printStackTrace();
return new HashMap<String,Object>();
}
}

mapper:

Object bindCard(Map<String, Object> map) throws Exception;

<select id="bindCard" parameterType="map" statementType="CALLABLE" resultType="java.lang.Object">
<![CDATA[
{call P_CardBindIdCardNo(
#{name,mode=IN,jdbcType=VARCHAR},
#{password,mode=IN,jdbcType=VARCHAR},
#{result,mode=OUT,jdbcType=BIT},
#{msg,mode=OUT,jdbcType=VARCHAR}
)}
]]>
</select>

20180522另一种方法:

mapper:

List<Map<String, Object>> getAnswerByModulesId(@Param("modulesId")int modulesId,@Param("patientCode")String patientCode) throws Exception;

    <select id="getAnswerByModulesId" resultType="map" statementType="CALLABLE" >
EXEC getAnswerByModulesId #{modulesId},#{patientCode}
</select>

service

List<Map<String, Object>> getQuestionAnswerByModulesId(int modulesId,String patientCode);

@Override
public List<Map<String, Object>> getQuestionAnswerByModulesId(int modulesId,String patientCode) {
try {
return naireMapper.getAnswerByModulesId(modulesId,patientCode);
} catch (Exception e) {
logger.error("getQuestionByModulesId异常!",e);
return new ArrayList<Map<String,Object>>();
}
}

controller

@RequestMapping(value = "/getQuestionAnswerByModulesId", method = RequestMethod.POST)
@ResponseBody
public JSONObject getQuestionAnswerByModulesId(HttpServletRequest req,int modulesId) {
JSONObject json = new JSONObject();
try {
@SuppressWarnings("unchecked")
Map<String,Object> map=(Map<String,Object>)req.getSession().getAttribute("user");
List<Map<String, Object>> list = naireService.getQuestionAnswerByModulesId(modulesId,(String)map.get("PatientCode"));
json.put("questionList", list);
json.put("result", true);
json.put("msg", "获取相应模块成功!");
} catch (Exception e) {
json.put("result", false);
json.put("msg", "获取相应模块失败!");
logger.error("getQuestionByModulesId异常!", e);
}
return json;
}

20180810:

注意,切换数据源时,调用存储过程时不能开启事物,否则不能切换数据源

20181023

今天要获得存储过程的返回值,但不想用call方法感觉太麻烦,网上也没找到资料,研究了一下可如此解决:

<select id="getUpdateHumanDisease" resultType="java.lang.String">
declare @result varchar(50)
exec updateHumanDisease #{0},#{1},#{2},@result output
select @result
</select>

mybatis调用存储过程获得取返回值的更多相关文章

  1. Java和Ibatis调用存储过程并取得返回值详解

    Java和Ibatis调用存储过程并取得返回值详解 2011-07-19 17:33 jiandanfeng2 CSDN博客 字号:T | T 本文主要介绍了Java和Ibatis调用存储过程的方法, ...

  2. mybatis调用存储过程,获取返回的游标

    将调用存储过程参数放入map中,由于返回的游标中包含很多参数,所以再写一个resultmap与之对应,类型为hashmap.设置返回的jdbcType=CURSOR,resultMap设置为id对应的 ...

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

    Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,i ...

  4. C# 连接Oracle,并调用存储过程(存在返回值),C# 调用sql存储过程

    1.获取Oracle表格信息 public OracleHelpers(string ConnStr) { ConnectionString = ConnStr; conn = new OracleC ...

  5. Yii2.0调用sql server存储过程并获取返回值

    1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...

  6. 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值

    关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...

  7. 定时ping取返回值并绘图

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  8. MyBatis基础:MyBatis调用存储过程(6)

    1. 存储过程准备 CREATE PROCEDURE sp_task ( IN userId INT ) BEGIN SELECT * FROM task WHERE user_id = userId ...

  9. 使用mybatis调用存储过程(注解形式和配置文件形式)

    最近在看资料中涉及到mybatis,突然想到mysql中的视图.存储过程.函数.现将在使用mybatis调用mysql的存储过程使用总结下: 使用的环境:mybatis3.4.6,mysql 5.6, ...

随机推荐

  1. Kafka术语解释

    前一篇文章介绍了如何使用kafka收发消息,但是对于kafka的核心概念并没有详细介绍,这里将会对包括kafka基本架构以及消费者.生产者API涉及的术语进行说明.了解这些术语有助于更深入理解kafk ...

  2. Julia 语言的一些尝试

    前些天发现了Julia 这门编程语言后便决定对其进行一些尝试,便写了下面的小程序,也算是看看这门语言所谓的速度快到底是怎么快法. 整数累加: x= function fff() : global x ...

  3. git 解决冲突问题

    问题描述: 一般来说,只要多人提交同一仓库,必然会有冲突的发生. Git解决 利用git解决冲突很简单,最常规的方法莫过于工作之前先更新整个project,完成之后及时提交.然而尽管这样做,也难免有人 ...

  4. javaScript基础篇之数据类型

    我主要学习廖雪峰老师官方网站的javaScript,所以很多都是出自于廖老师,请见谅.以下是廖老师的官方网站的地址:http://www.liaoxuefeng.com/wiki/0014344466 ...

  5. springboot项目配置拦截器,进行登陆等拦截

    新建拦截类: public class LoginInterceptor implements HandlerInterceptor{ private static Log logger = LogF ...

  6. streamsets redis destinations 使用

    测试集成了directory(excel) 以及redis && field splitter 组件 pipeline flow docker-compose 配置 redis 服务& ...

  7. hasura graphql 模式拼接概念

    具体的使用可以参考下面一张图 有一个术语 graphql-bindings 参考项目: https://github.com/hasura/generate-graphql-bindings http ...

  8. deno学习二 基本代码

    deno 介绍是安全的ts 运行时 简单的代码 使用js(app.js) console.log("demoapp") 输出 dalongdemo 使用ts(app.ts) con ...

  9. JSON用法之将PHP数组转JS数组,JS如何接收PHP数组

    先看php文件,当我们获取到$arr这个数组后 foreach ($arr as $value) { $json .= json_encode($value) . ','; } echo '[' . ...

  10. java 题

    [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:   兔子的规律为数列1 ...