关于mybatis调用存储过程获取返回值问题

 更新时间:2022年01月17日 11:03:21   作者:每天都要学一点  
这篇文章主要介绍了mybatis调用存储过程获取返回值问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

总体思路:map传值

controller:

Map<String,Object> m=new HashMap<String,Object>();
        m.put("name", 'zs');
        m.put("password", '55555');
        cardservice.bindCard(m);
        JSONObject json=new JSONObject();
        //获得返回值
        json.put("msg", m.get("msg"));
        json.put("result", m.get("result"));

service:

@Override
    public Object bindCard(Map<String,Object> m) {
        try {
            return cardMapper.bindCard(m);
        } catch (Exception e) {
            e.printStackTrace();
            return new HashMap<String,Object>();
        }
    }

mapper:

Object bindCard(Map<String, Object> map) throws Exception;


<select id="bindCard" parameterType="map" statementType="CALLABLE" resultType="java.lang.Object">
    <![CDATA[  
    {call P_CardBindIdCardNo(
    #{name,mode=IN,jdbcType=VARCHAR},
    #{password,mode=IN,jdbcType=VARCHAR},
    #{result,mode=OUT,jdbcType=BIT},
    #{msg,mode=OUT,jdbcType=VARCHAR}
    )} 
  ]]>
</select>

20180522另一种方法:

mapper:

List<Map<String, Object>> getAnswerByModulesId(@Param("modulesId")int modulesId,@Param("patientCode")String patientCode) throws Exception;
    <select id="getAnswerByModulesId" resultType="map" statementType="CALLABLE" >
        EXEC getAnswerByModulesId #{modulesId},#{patientCode}
    </select

service

List<Map<String, Object>> getQuestionAnswerByModulesId(int modulesId,String patientCode);

@Override
    public List<Map<String, Object>> getQuestionAnswerByModulesId(int modulesId,String patientCode) {
        try {
            return naireMapper.getAnswerByModulesId(modulesId,patientCode);
        } catch (Exception e) {
            logger.error("getQuestionByModulesId异常!",e);
            return new ArrayList<Map<String,Object>>();
        }
    }

controller

@RequestMapping(value = "/getQuestionAnswerByModulesId", method = RequestMethod.POST)
    @ResponseBody
    public JSONObject getQuestionAnswerByModulesId(HttpServletRequest req,int modulesId) {
        JSONObject json = new JSONObject();
        try {
            @SuppressWarnings("unchecked")
            Map<String,Object> map=(Map<String,Object>)req.getSession().getAttribute("user");
            List<Map<String, Object>> list = naireService.getQuestionAnswerByModulesId(modulesId,(String)map.get("PatientCode"));
            json.put("questionList", list);
            json.put("result", true);
            json.put("msg", "获取相应模块成功!");
        } catch (Exception e) {
            json.put("result", false);
            json.put("msg", "获取相应模块失败!");
            logger.error("getQuestionByModulesId异常!", e);
        }
        return json;
    }

20180810:

注意,切换数据源时,调用存储过程时不能开启事物,否则不能切换数据源

20181023

今天要获得存储过程的返回值,但不想用call方法感觉太麻烦,网上也没找到资料,研究了一下可如此解决:

<select id="getUpdateHumanDisease" resultType="java.lang.String">
    declare @result varchar(50)
    exec updateHumanDisease #{0},#{1},#{2},@result output
    select @result
</select>

到此这篇关于mybatis调用存储过程获取返回值的文章就介绍到这了,更多相关mybatis获取返回值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IntelliJ IDEA快速查看某个类/接口的子类或父类

    IntelliJ IDEA快速查看某个类/接口的子类或父类

    本文主要介绍了IntelliJ IDEA快速查看某个类/接口的子类或父类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • mybatis之批量添加问题

    mybatis之批量添加问题

    这篇文章主要介绍了mybatis之批量添加问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 喜大普奔IntelliJ IDEA 可以使用中文了

    喜大普奔IntelliJ IDEA 可以使用中文了

    IntelliJ Idea最大的亮点开始支持中文,很多英语不好的童鞋有福了,今天通过本文给大家分享如何开启中文汉化,通过图文步骤给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-05-05
  • Java开发环境配置教程(win7 64bit)

    Java开发环境配置教程(win7 64bit)

    这篇文章主要为大家详细介绍了win7 64bit下Java开发环境的配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Elasticsearch 在 Java 中的使用示例教程

    Elasticsearch 在 Java 中的使用示例教程

    本文介绍了如何在Java中使用Elasticsearch,涵盖了连接、基本CRUD 操作、复杂查询、索引管理和聚合操作等方面的内容,通过示例,开发者可以一步步地掌握如何在 Java 项目中集成 Elasticsearch,并利用其强大的搜索和分析功能来构建高效的应用程序,感兴趣的朋友一起看看吧
    2024-08-08
  • Java实现5种负载均衡算法(小结)

    Java实现5种负载均衡算法(小结)

    负载均衡是将客户端请求访问,通过提前约定好的规则转发给各个server,本文主要介绍了Java实现5种负载均衡算法,具有一定的参考价值,感兴趣的可以了解一下
    2022-06-06
  • 详解Idea SpringBoot搭建SpringCloud的准备工作(推荐)

    详解Idea SpringBoot搭建SpringCloud的准备工作(推荐)

    这篇文章主要介绍了Idea SpringBoot搭建SpringCloud的准备工作(推荐),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Junit写法及与spring整合过程详解

    Junit写法及与spring整合过程详解

    这篇文章主要介绍了Junit写法及与spring整合过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • java应用领域分析

    java应用领域分析

    在这篇文章里,我们将更确切地知道哪种类型的项目是使用Java完成的,Java运用在哪些主要领域和部门,以及Java在现实世界的哪些地方起着什么作用,需要的朋友可以参考下
    2017-09-09
  • 浅谈Spring中HandlerMapping的使用

    浅谈Spring中HandlerMapping的使用

    这篇文章主要介绍了浅谈Spring中HandlerMapping的使用,Spingmvc中的HandlerMapping负责解析请求URL,对应到Handler进行处理,这里的Handler一般为Controller里的一个方法method,也可以为servlet或者Controller等,需要的朋友可以参考下
    2023-08-08

最新评论