mybatis調用sqlserver存儲過程返回結果集的方法
第一種:返回值通過out輸出 sqlserver存儲
testMapper.xml
兩種都能接收到數(shù)據(jù)的, 因為我的實體類字段與數(shù)據(jù)庫的不一致,上面圖片是按照數(shù)據(jù)庫字段定義的,下圖是按照實體類定義的,接收輸出參數(shù)是按照你定義的名稱返回
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參數(shù),但是怎么都返回null值;
總結一下自己遇到的問題:
1. 調用存儲 call外面有個{}花括號
2.column是數(shù)據(jù)庫名稱 property是實體類名稱
3.sqlserver存儲定義的out輸出參數(shù)要用map才能接收到,實體類一直返回null(用resultMap去接收,還請大佬指點指點)
4.使用#{}會將傳入的參數(shù)用引號包裹例如:‘a(chǎn)' ;使用${}傳入的參數(shù)不會用引號包裹 例如 a
5.sqlserver存儲里OUT輸出的參數(shù)名稱是@Return_rescode或者@Return_resmsg與實體類的名稱不一致,可以在xml里面定義的時候就直接定義實體類的名稱,接收的時候也會按照你定義的實體類中的名稱返回
到此這篇關于mybatis調用sqlserver存儲過程返回結果集的文章就介紹到這了,更多相關mybatis返回結果集內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。