MyBatis 如何接收参数

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

相关文章
相关标签/搜索