mybatis mapper調用mysql存儲過程

mybatis版本:3.4.4sql

存儲過程

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

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

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

注意:OUT參數必須指定jdbcType函數

二、定義mapper接口中的方法spa

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

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

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

注意:若是存儲過程執行過程當中有sql調用,可做爲存儲過程的執行結果返回,同基本的select定義相似,增長resultMap或resultType參數,mapper接口增長返回參數類型。blog

函數

mapper.xml配置接口

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

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

相關文章
相關標籤/搜索