目录
1.创建存储过程
2.编写Mybatis的XML
3.编写测试Controller
1.创建存储过程
CREATE OR REPLACe PROCEDURE getlist_ascs21 (
cardNo IN VARCHAR2,
v_cursor out sys_refcursor
)
is
begin
open v_cursor for
SELECT
LAST_UPDATE_DTIME,
DTYPE,
ORG_CODE
--省略字段。。。。
FROM
--省略复杂的sql语句
AND BASE.ID_NO = cardNo --入参
) T
ORDER BY org_code,
DTIME DESC;
end;
sys_refcursor是系统定义的一个refcursor,将查询出来复杂的结果集通过sys_refcursor返回给客户端。
2.编写Mybatis的XML
- id:唯一指定标签的名字
- parameterType:给sql语句传递参数的数据类型
- statementType:CALLABLE,执行存储过程
resultMap:配置返回游标中别名对应的resultMap,一一映射,配置如下:
对应mapper接口的方法:
这里的mapper接口的方法没有写对应的返回值,因为对应的结果直接封装在result中了,可以直接从map中直接拿到。
void getlistss(Map map);
3.编写测试Controller
这里直接测试,省略Service,直接调用mapper,对应的代码如下:
@ApiOperation("测试") @GetMapping("test") public Result test(String cardNo) { HashMap
利用map进行参数的传递,hashMap.get("result")获取结果集,这里的result必须和xml中的配置一样。
打开swagger进行测试,结果如下:
控制台输出如下:
希望文章能够帮助你!如果有错误,记得评论提醒我修改,谢谢!。