mybatis调用sqlserver存储过程返回结果集

 第一种:返回值通过out输出 sqlserver存储

testMapper.xml 

 

两种都能接收到数据的, 因为我的实体类字段与数据库的不一致,上面图片是按照数据库字段定义的,下图是按照实体类定义的,接收输出参数是按照你定义的名称返回

 serviceImpl

            Map<String,String> objectsMap = new HashMap<>();
            objectsMap.put("sno","123");
            objectsMap.put("sname","123");
            testMapper.test(objectsMap);
            System.out.println(map.get("Return_rescode"));
            System.out.println(map.get("Return_resmsg"));

第二种:存储并没有定义out输出字段

mapper.xml 

不传参 

 

传参

 serviceImpl

List<TimeEntity> timeList = testMapper.selectTime();

 我有试过resultMap去接收sqlserver 定义的out参数,但是怎么都返回null值;

总结一下自己遇到的问题:

1. 调用存储 call外面有个{}花括号

2.column是数据库名称 property是实体类名称

3.sqlserver存储定义的out输出参数要用map才能接收到,实体类一直返回null(用resultMap去接收,还请大佬指点指点)

4.使用#{}会将传入的参数用引号包裹例如:‘a’  ;使用${}传入的参数不会用引号包裹 例如 a

5.sqlserver存储里OUT输出的参数名称是@Return_rescode或者@Return_resmsg与实体类的名称不一致,可以在xml里面定义的时候就直接定义实体类的名称,接收的时候也会按照你定义的实体类中的名称返回

 

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:终极编程指南 设计师:CSDN官方博客 返回首页
评论 8

打赏作者

cocosun.

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值