总体思路: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>

最新文章

  1. poj3629
  2. 动态的计算行高 加载数据源 有多少显示多少 tableView 包含 colloctionView 显示复杂的界面写法
  3. SQL Server 2005中的分区表(六):将已分区表转换成普通表(转)
  4. 语言基础:C#输入输出与数据类型及其转换
  5. BZOJ1657: [Usaco2006 Mar]Mooo 奶牛的歌声
  6. resin安装
  7. asp.net 错误处理
  8. 深入理解JavaScript(1)
  9. 加密算法 MD5/SHA1
  10. 在一个view类里面获取viewcontroller
  11. ubuntu 14.04 cagl
  12. Listview源码分析(1)
  13. memcache细节解析
  14. C++复制、压缩文件夹
  15. Java8虚拟机内存模型
  16. DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
  17. sai u 2016
  18. ML.NET 示例:推荐之场感知分解机
  19. C#动态系统托盘图标
  20. Asp.Net构架(Http请求处理流程)、(Http Handler 介绍)、(HttpModule 介绍)

热门文章

  1. Vue2.0 less全局配置
  2. Tomcat启动 Unable to process Jar entry [javassist/XXXXXX.class]
  3. 注册dll文件
  4. Mac OS下面安装mysql以及mysql常用命令
  5. test20181016 B君的第三题
  6. python 保存文件时候, 去除名字中的非法字符
  7. C#拦截系统消息
  8. oracle之 数据泵dump文件存放nfs报ORA-27054
  9. win7下openvpn不能自动加路由
  10. XiaoMi Interview Log