1. 程式人生 > >myBatis呼叫帶返回值的儲存過程(mysql)

myBatis呼叫帶返回值的儲存過程(mysql)

折騰了一上午才順利的把這個跑通了,廢話不多說,上程式碼!

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儲存過程;