Mybatis 参数处理—单个参数&多个参数 TO

在SQL映射文件中,如果一条SQL语句中只有一个参数,则使用#{}或#{随意参数}就可以直接获取到值,单多个参数怎么获取值呢?

Employee getEmpByIdAndName(Integer id,String lastName);

SQL映射语句:

<select id="getEmpByIdAndName" resultType="emp">
    select * from tab_empoyee where id=#{param1} and last_name=#{param2}
</select>

由以上代码可以看出,参数值是按顺序的,必须遵守paramX的方式获取。

这是因为在Mybatis中对参数进行了特殊处理,封装成类Map类型。

但是在参数多的时候,这样方式显然很不完美,于是有了@param注解来自定义map的key。

Employee getEmpByIdAndName(@Param("id") Integer id,@Param("lastName")String lastName);

记住:自定义key后并不影响@param的顺序和使用!

也可以直接传入一个map类型,但是如果经常使用,推荐编写一个TO(Transfer Object) 数据传输对象
Page{
int index;
int size;
}

推荐使用POJO(Bean)对象。

原文链接:,转发请注明来源!

发表评论