Mybatis调用SQL Server存储过程的实现示例

 更新时间:2024年01月17日 12:01:16   作者:孤巷守鹤  
在软件开发过程中,经常会使用到存储过程,本文就来介绍一下Mybatis调用SQL Server存储过程的实现示例,具有一定的参考价值,感兴趣的可以了解一下

前言

在软件开发过程中,经常会使用到存储过程,本篇文章用于讲解示例如何使用SpringBoot+Mybatis的方式调用SQL Server数据库的存储过程并且得到存储过程的回参;

一、存储过程的入参

这是存储过程的入参,用于后续Mybatis的对应;

代码如下(示例):

在这里插入图片描述

二、Mybatis中XML的编写

注意参数类型,以及参数的出入参设置;代码如下(示例):

    <!--门诊充值-->
    <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 参数
     * @return String
     */
    String outpatientRecharge(Map<String, Object> params);

四、【重点】Service层的调用

代码如下(示例):

    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");
        //这里下面两个参数,就是存储过程的回参,当存储过程执行后会赋值到这个入参中的参数里面。后续打印可见内容,
        params.put("meg","");
        params.put("message","");
        storeProcedureDao.outpatientRecharge(params);
        log.info("params == {}",params);
        return ResJsonUtil.toJsonSuccess();
    }

说明:为了能够清晰演示,所以使用了Map作为入参,也可以使用Entity作为入参,主要就在于需要在入参中定义两个的参数;而Mybatis执行完成存储过程后,会将回参赋值到设置好的出参参数中;

最后存储过程执行完成后,下面的打印示例:

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参数已被重新赋值;接下来就可以直接获取出参的内容进行判断,执行后续的业务逻辑了;

到此这篇关于Mybatis调用SQL Server存储过程的实现示例的文章就介绍到这了,更多相关Mybatis调用SQL Server存储过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 使用json-lib处理JSON详解及实例代码

    Java 使用json-lib处理JSON详解及实例代码

    这篇文章主要介绍了Java 使用json-lib处理JSON详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • 详解Spring中@Component和@Configuration的区别

    详解Spring中@Component和@Configuration的区别

    一直有同学搞不清Spring中@Component和@Configuration这两个注解有什么区别,所以这篇文章小编就给大家简单介绍一下@Component和@Configuration的区别,需要的朋友可以参考下
    2023-07-07
  • Java中Lombok @Value注解导致的variable not been initialized问题

    Java中Lombok @Value注解导致的variable not been initialized问题

    本文主要介绍了Java中Lombok @Value注解导致的variable not been initialized问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Spring MVC InitBinder验证方法

    Spring MVC InitBinder验证方法

    这篇文章主要介绍了Spring MVC InitBinder验证方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Elasticsearch学习之Terms set 查询

    Elasticsearch学习之Terms set 查询

    这篇文章主要为大家介绍了Elasticsearch学习Terms set 查询示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Java数据结构与算法之选择排序(动力节点java学院整理)

    Java数据结构与算法之选择排序(动力节点java学院整理)

    这篇文章主要介绍了Java数据结构与算法之选择排序的相关资料,本文通过代码讲解,非常不错,具有参考借鉴价值,需要的的朋友参考下
    2017-04-04
  • SpringBoot配置shiro安全框架的实现

    SpringBoot配置shiro安全框架的实现

    这篇文章主要介绍了SpringBoot配置shiro安全框架的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • SpringBoot生成Excel文件的实现示例

    SpringBoot生成Excel文件的实现示例

    本文介绍了Spring Boot项目中生成Excel文件,使用了Apache POI库,包括poi和poi-ooxml依赖,通过遍历用户信息列表,将数据写入Excel文件,感兴趣的可以了解一下
    2025-02-02
  • Spring Boot两种配置文件properties和yml区别

    Spring Boot两种配置文件properties和yml区别

    这篇文章主要为大家介绍了java面试中常见问到的Spring Boot两种配置文件properties和yml区别解答,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 微信公众号开发消息推送功能

    微信公众号开发消息推送功能

    微信公众号分为服务号、订阅号、企业号,订阅号可以个人申请,服务号和企业号要有企业资质才可以,这篇文章主要介绍了微信公众号开发消息推送功能,需要的朋友可以参考下
    2023-02-02

最新评论