@Param在Mybatis中的使用

时间:2021-08-06 11:07:48
自己的一些总结,方便自己以后查找,有不对的地方请指出来,一起提高。

1.如果mapper接口里参数是两个普通参数;如下图

public List<student> selectuser(int pn ,String i);

<select id="selectuser"  resultType="com.user.entity.student">
        SELECT * FROM student
         where sname like concat(concat("%",#{1}),"%")
         LIMIT #{0} ,5    
</select>

那么xml里只能用#{0},#{1}的方式,但这样的表达方法,不利于后期的维护。        可以用@Param的注解来修饰参数。xml里看起来也比较方便,否则一堆0,1,2,3的真是难懂。

public List<student> selectuser(@Param(value = "page")int pn ,@Param(value = "str")String i);

<select id="selectuser"  resultType="com.user.entity.student">
    SELECT * FROM student
    where sname like concat(concat("%",#{str}),"%")
    LIMIT #{page} ,5
</select>

2,如果传入的参数是基本类型参数和实体类对象。

public List<student> selectuser(@Param(value = "page")int pn ,@Param(value = "st")student student);

<select id="selectuser"  resultType="com.user.entity.student">
    SELECT * FROM student
    where sname like concat(concat("%",#{st.sname}),"%")
    LIMIT #{page} ,5
</select>

3.如果传入的参数只有一个,基本上不用@Param这个注解了。正常用

public List<student> selectuser(int pn);

<select id="selectuser"  resultType="com.user.entity.student">
        SELECT * FROM student
        <!--where sname like concat(concat("%",#{st.sname}),"%")-->
        LIMIT #{page} ,5
    </select>

暂时知道的就是这些,有缺失的地方,以后会继续补充。