Mybatis調(diào)用SQL?Server存儲(chǔ)過(guò)程的實(shí)現(xiàn)示例
前言
在軟件開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)使用到存儲(chǔ)過(guò)程,本篇文章用于講解示例如何使用SpringBoot+Mybatis的方式調(diào)用SQL Server數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程并且得到存儲(chǔ)過(guò)程的回參;
一、存儲(chǔ)過(guò)程的入?yún)?/h2>
這是存儲(chǔ)過(guò)程的入?yún)ⅲ糜诤罄m(xù)Mybatis的對(duì)應(yīng);
代碼如下(示例):

二、Mybatis中XML的編寫(xiě)
注意參數(shù)類(lèi)型,以及參數(shù)的出入?yún)⒃O(shè)置;代碼如下(示例):
<!--門(mén)診充值-->
<select id="outpatientRecharge" parameterType="java.util.Map" statementType="CALLABLE" resultType="java.lang.String">
<![CDATA[
{
call SP_xcx_mzcz(
#{cardNo, jdbcType=VARCHAR, mode=IN},
#{cardtype, jdbcType=VARCHAR, mode=IN},
#{payPlatform, jdbcType=VARCHAR, mode=IN},
#{rechargeTime, jdbcType=VARCHAR, mode=IN},
#{money, jdbcType=DECIMAL, mode=IN},
#{serialNo, jdbcType=VARCHAR, mode=IN},
#{meg, jdbcType=VARCHAR, mode=OUT},
#{message, jdbcType=VARCHAR, mode=OUT}
)
}
]]>
</select>
三、Dao層的代碼
代碼如下(示例):
/**
* 門(mén)診充值
* @param params 參數(shù)
* @return String
*/
String outpatientRecharge(Map<String, Object> params);
四、【重點(diǎn)】Service層的調(diào)用
代碼如下(示例):
public JSONObject saveCurrencyPayStoredProcedureMapping(){
Map<String, Object> params = new HashMap<>();
params.put("cardNo","362330200010132058");
params.put("cardtype","1");
params.put("payPlatform","1");
params.put("rechargeTime","2023-07-31");
params.put("money","100");
params.put("serialNo","123123123");
//這里下面兩個(gè)參數(shù),就是存儲(chǔ)過(guò)程的回參,當(dāng)存儲(chǔ)過(guò)程執(zhí)行后會(huì)賦值到這個(gè)入?yún)⒅械膮?shù)里面。后續(xù)打印可見(jiàn)內(nèi)容,
params.put("meg","");
params.put("message","");
storeProcedureDao.outpatientRecharge(params);
log.info("params == {}",params);
return ResJsonUtil.toJsonSuccess();
}
說(shuō)明:為了能夠清晰演示,所以使用了Map作為入?yún)ⅲ部梢允褂肊ntity作為入?yún)?,主要就在于需要在入?yún)⒅卸x兩個(gè)的參數(shù);而Mybatis執(zhí)行完成存儲(chǔ)過(guò)程后,會(huì)將回參賦值到設(shè)置好的出參參數(shù)中;
最后存儲(chǔ)過(guò)程執(zhí)行完成后,下面的打印示例:
2023-07-31 14:32:58.180 INFO 27640 --- [nio-7989-exec-1] c.e.whinterface.service.PayService : params == {money=100, rechargeTime=2023-07-31, payPlatform=1, cardtype=1, message=充值成功, cardNo=362330200010138252, meg=1, serialNo=123123123}
可以看到,出參的meg和message參數(shù)已被重新賦值;接下來(lái)就可以直接獲取出參的內(nèi)容進(jìn)行判斷,執(zhí)行后續(xù)的業(yè)務(wù)邏輯了;
到此這篇關(guān)于Mybatis調(diào)用SQL Server存儲(chǔ)過(guò)程的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Mybatis調(diào)用SQL Server存儲(chǔ)過(guò)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 使用json-lib處理JSON詳解及實(shí)例代碼
這篇文章主要介紹了Java 使用json-lib處理JSON詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
詳解Spring中@Component和@Configuration的區(qū)別
一直有同學(xué)搞不清Spring中@Component和@Configuration這兩個(gè)注解有什么區(qū)別,所以這篇文章小編就給大家簡(jiǎn)單介紹一下@Component和@Configuration的區(qū)別,需要的朋友可以參考下2023-07-07
Java中Lombok @Value注解導(dǎo)致的variable not been initialized問(wèn)題
本文主要介紹了Java中Lombok @Value注解導(dǎo)致的variable not been initialized問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Spring MVC InitBinder驗(yàn)證方法
這篇文章主要介紹了Spring MVC InitBinder驗(yàn)證方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Elasticsearch學(xué)習(xí)之Terms?set?查詢
這篇文章主要為大家介紹了Elasticsearch學(xué)習(xí)Terms?set?查詢示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Java數(shù)據(jù)結(jié)構(gòu)與算法之選擇排序(動(dòng)力節(jié)點(diǎn)java學(xué)院整理)
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之選擇排序的相關(guān)資料,本文通過(guò)代碼講解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-04-04
SpringBoot配置shiro安全框架的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot配置shiro安全框架的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
SpringBoot生成Excel文件的實(shí)現(xiàn)示例
本文介紹了Spring Boot項(xiàng)目中生成Excel文件,使用了Apache POI庫(kù),包括poi和poi-ooxml依賴(lài),通過(guò)遍歷用戶信息列表,將數(shù)據(jù)寫(xiě)入Excel文件,感興趣的可以了解一下2025-02-02
Spring Boot兩種配置文件properties和yml區(qū)別
這篇文章主要為大家介紹了java面試中常見(jiàn)問(wèn)到的Spring Boot兩種配置文件properties和yml區(qū)別解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

