评论

收藏

[SQL Server] mybatis调用sqlserver存储过程返回结果集的方法

数据库 数据库 发布于:2021-06-25 11:51 | 阅读数:542 | 评论:0

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

  testMapper.xml
DSC0001.png

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

  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输出字段
DSC0003.png

  mapper.xml
DSC0004.png

  不传参
DSC0005.png

  传参
DSC0006.png

  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里面定义的时候就直接定义实体类的名称,接收的时候也会按照你定义的实体类中的名称返回
  到此这篇关于mybatis调用sqlserver存储过程返回结果集的文章就介绍到这了,更多相关mybatis返回结果集内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

关注下面的标签,发现更多相似文章