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中取就可以了
首先看一下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中取就可以了
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- Tomcat端口被占用解决方法(不用重启)
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- “传奇”图象数据存储方式
- PostgreSQL教程(十九):SQL语言函数