myBatis呼叫帶返回值的儲存過程(mysql)
阿新 • • 發佈:2019-02-13
折騰了一上午才順利的把這個跑通了,廢話不多說,上程式碼!
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儲存過程;