您的位置:首页 > 数据库

mybatis调用存储过程

2015-11-20 16:58 375 查看
mybatis调用存储过程的返回参数到底怎么传递的一直没搞清楚,不过调用可以参考一下:

首先看一下xml文件中的SQL:

  <select id="queryDeptNameByUserId" statementType="CALLABLE" parameterType="map">

    <![CDATA[

           {call queryDeptNameByUserId(

              #{userId,mode=IN,jdbcType=INTEGER},

               #{userDeptName,mode=OUT,jdbcType=VARCHAR}

            )}    

     ]]>

  </select>

其中statementType="CALLABLE"必须配置    参数中in out表示存储过程的输入输出参数

再看一下dao调用sql:

 String queryDeptNameByUserId(Map<String, Object> param);

关于返回值怎么传递一直没搞清楚,所以这里的String接收返回参数并不准确,你也可以用int

最后看实现类的调用并取值:

paramMap.put("userId", usb.getId());

trainingClassMapper.queryDeptNameByUserId(paramMap);

if (paramMap.get("userDeptName") == null) {
usb.setDeptName("");

}

usb.setDeptName(paramMap.get("userDeptName").toString());

最终返回值其实mybatis将返回值存入到map中去了,String中是没有值的,最终取出返回值在map中取就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis sql 存储