mybatis mapper調用mysql存儲過程


mybatis版本:3.4.4

存儲過程

1、mapper.xml文件中配置相關的sql語句。

<select id="callTest" statementType="CALLABLE" >
{ 
    call hasResource(
        #{param1,mode=IN},
        #{param2,mode=IN},
        #{param3,mode=OUT,jdbcType=INTEGER}
    )
}
</select>

注意:parameterMap已被舍棄,請直接在sql語句中定義傳參類型。

注意:OUT參數必須指定jdbcType

2、定義mapper接口中的方法

void callTest(Map<String, Object> params);

注意:如果存儲過程中有OUT參數,調用時的傳參只能是Map類型,調用結束后從Map中根據OUT參數的名稱獲取返回的數據。如果沒有OUT參數,可以使用@Param方式定義接口中的傳參。

注意:在Mysql中,定義OUT參數為游標類型,好像很復雜,沒找到相關資料。官網的存儲過程文檔特少,不知道是不是找錯地方了。

注意:如果存儲過程執行過程中有sql調用,可作為存儲過程的執行結果返回,同基本的select定義類似,增加resultMap或resultType參數,mapper接口增加返回參數類型。

函數

mapper.xml配置

<select id="callTest" resultType="int" >
  select functionTest(#{params1}, #{param2}) from dual;
</select>

mapper接口中的方法為基本方法傳參和返回數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM