MyBatis的mapper接口不須要本身實現,框架會自動幫咱們實現,到時候直接調用就能夠了。定義的mapper接口中的方法能夠有多個參數嗎?答案是確定。在Ibatis時代是本身經過代碼實現如何調用xml中定義的statement,接受的參數只能是一個,因此處理的辦法一般是用Map的方式。固然這個也能使用在MyBatis上,不過MyBatis提供更加簡單的方法。下面就經過例子來講明。
Mapper接口
public interface TestMapper {
Object meth1(String para1, String para2);
/**
* p一、p2能夠是任何合法的java命名方式
* xml中能夠根據此標示來獲取到具體傳入的值
*/
Objectmeth2(@Param("p1")String para1, @Param("p2")Stringpara2);
}
mapper.xml
<select id="meth1"resultType="int">
select count * fromtest
where col1 =#{0}
and clo2 = #{1}
</select>
<select id="meth2"resultType="int">
select count * fromtest
wherecol1 = #{p1}
and clo2 =#{p2}
</select>
上述兩種方法都行的通,上述statement中不須要指定parameterType。若是不使用@Param註解方式,那麼能夠經過#{0}、#{1}的方式來獲取參數的值,注意function中的第一個參數是0;使用了註解就按註解中定義的名字來取。推薦使用註解的方式。在方法重構時,例如增長、減小或調整參數的順序,若是使用非註解的方式,在修改xml時就顯得比較麻煩,可能裏面的${0}、${1}、${2}都須要調整,並且不明確,特別是參數較多的狀況下。java
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。app