以下是mybatis調(diào)用Oracle存儲過程的幾種情況的詳細使用方法:
- 無參存儲過程調(diào)用: 在Mapper.xml文件中,使用
select
標簽摹芙,并設(shè)置statementType="CALLABLE"
灼狰,不需要指定參數(shù)類型。
<select id="spNoParam" statementType="CALLABLE">
{call sp_no_param()}
</select>
- 入?yún)⒋鎯^程調(diào)用: 在Mapper.xml文件中浮禾,使用
select
標簽交胚,并設(shè)置statementType="CALLABLE"
,指定參數(shù)類型和參數(shù)值盈电。
<select id="spWithParam" statementType="CALLABLE" parameterType="map">
{call sp_with_param(#{param1, jdbcType=VARCHAR, mode=IN})}
</select>
- 出參存儲過程調(diào)用: 在Mapper.xml文件中蝴簇,使用
select
標簽,并設(shè)置statementType="CALLABLE"
匆帚,指定參數(shù)類型和參數(shù)模式為OUT熬词。
<select id="spWithOutParam" statementType="CALLABLE" parameterType="map">
{call sp_with_out_param(#{result, jdbcType=VARCHAR, mode=OUT})}
</select>
- 入?yún)⒑统鰠⒋鎯^程調(diào)用,并獲取出參結(jié)果: 在Mapper.xml文件中,使用
select
標簽互拾,并設(shè)置statementType="CALLABLE"
歪今,指定參數(shù)類型和參數(shù)模式為IN和OUT,同時設(shè)置返回結(jié)果颜矿。
<select id="spWithInOutParam" statementType="CALLABLE" parameterType="map">
{call sp_with_in_out_param(
#{param1, jdbcType=VARCHAR, mode=IN},
#{result, jdbcType=VARCHAR, mode=OUT}
)}
</select>
- 結(jié)果集存儲過程調(diào)用: 在Mapper.xml文件中寄猩,使用
select
標簽,并設(shè)置statementType="CALLABLE"
骑疆,指定參數(shù)類型和參數(shù)模式為IN田篇,同時設(shè)置返回結(jié)果集。
<select id="spWithResultSet" statementType="CALLABLE" parameterType="map" resultType="com.example.Result">
{call sp_with_result_set(#{param1, jdbcType=VARCHAR, mode=IN})}
</select>