您的位置:首页 > 数据库 > MySQL

myBatis调用带返回值的存储过程(mysql)

2012-11-27 15:07 567 查看
折腾了一上午才顺利的把这个跑通了,废话不多说,上代码!

1.存储过程返回一个String

CREATE PROCEDURE `sp_redblack_prize`(OUT result_record varchar(2000000)){……}

2.在mapper.xml中

在这里要注意:Set resultType="map" on <select> element.  I think for stored proc
output parms you either need a map, or an object with getters/setters. 

<select id="spRedBlack" statementType="CALLABLE" parameterType="java.util.Map"
resultType="java.util.Map">
{CALL sp_redblack_prize(#{result,mode=OUT,jdbcType=VARCHAR}) }
</select>


3.在mapper.java中

String spRedBlack(Map param);
4.在service中调用的方法

HashMap params = new HashMap();
params.put("result", "");
this.gamblingRedBlackDAO.spRedBlack(params);
String result = (String) params.get("result");

注:statementType的类型分为:



statement未预编译;

prepared预编译(默认);

callable存储过程;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: