欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis調(diào)用SQL?Server存儲過程的實(shí)現(xiàn)示例

 更新時(shí)間:2024年01月17日 12:01:16   作者:孤巷守鶴  
在軟件開發(fā)過程中,經(jīng)常會使用到存儲過程,本文就來介紹一下Mybatis調(diào)用SQL?Server存儲過程的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下

前言

在軟件開發(fā)過程中,經(jīng)常會使用到存儲過程,本篇文章用于講解示例如何使用SpringBoot+Mybatis的方式調(diào)用SQL Server數(shù)據(jù)庫的存儲過程并且得到存儲過程的回參;

一、存儲過程的入?yún)?/h2>

這是存儲過程的入?yún)?,用于后續(xù)Mybatis的對應(yīng);

代碼如下(示例):

在這里插入圖片描述

二、Mybatis中XML的編寫

注意參數(shù)類型,以及參數(shù)的出入?yún)⒃O(shè)置;代碼如下(示例):

    <!--門診充值-->
    <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層的代碼

代碼如下(示例):

    /**
     * 門診充值
     * @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ù),就是存儲過程的回參,當(dāng)存儲過程執(zhí)行后會賦值到這個(gè)入?yún)⒅械膮?shù)里面。后續(xù)打印可見內(nèi)容,
        params.put("meg","");
        params.put("message","");
        storeProcedureDao.outpatientRecharge(params);
        log.info("params == {}",params);
        return ResJsonUtil.toJsonSuccess();
    }

說明:為了能夠清晰演示,所以使用了Map作為入?yún)?,也可以使用Entity作為入?yún)ⅲ饕驮谟谛枰谌雲(yún)⒅卸x兩個(gè)的參數(shù);而Mybatis執(zhí)行完成存儲過程后,會將回參賦值到設(shè)置好的出參參數(shù)中;

最后存儲過程執(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ù)已被重新賦值;接下來就可以直接獲取出參的內(nèi)容進(jìn)行判斷,執(zhí)行后續(xù)的業(yè)務(wù)邏輯了;

到此這篇關(guān)于Mybatis調(diào)用SQL Server存儲過程的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Mybatis調(diào)用SQL Server存儲過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論