您的位置:首頁技術文章
文章詳情頁

mybatis調用sqlserver存儲過程返回結果集的方法

瀏覽:26日期:2023-10-19 12:25:52

第一種:返回值通過out輸出 sqlserver存儲

mybatis調用sqlserver存儲過程返回結果集的方法

testMapper.xml

mybatis調用sqlserver存儲過程返回結果集的方法

兩種都能接收到數據的, 因為我的實體類字段與數據庫的不一致,上面圖片是按照數據庫字段定義的,下圖是按照實體類定義的,接收輸出參數是按照你定義的名稱返回

mybatis調用sqlserver存儲過程返回結果集的方法

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輸出字段

mybatis調用sqlserver存儲過程返回結果集的方法

mapper.xml

mybatis調用sqlserver存儲過程返回結果集的方法

不傳參

mybatis調用sqlserver存儲過程返回結果集的方法

傳參

mybatis調用sqlserver存儲過程返回結果集的方法

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返回結果集內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
国产综合久久一区二区三区