使用@Param注解为参数命名,Mybatis在封装参数时会对标识有@Param的参数进行命名。key是我们指定命名。
使用时用@Param指定的参数名或#{param1}, #{param2}。而默认的以参数下标的方式获取参数不再生效。如#{0}, #{1}
- 实例
/**
* interface of mapper
*/
public User getUserInfo (@Param String userId, @Param String uname);
/**
* mapper.xml
*/
<select id="getUserInfo" resultType="com.cat.pojo.User">
SELECT * FROM user WHERE id = #{userId} AND username = #{uname}
</select>
也可以写成默认参数中的一种,如
/**
* mapper.xml
*/
<select id="getUserInfo" resultType="com.cat.pojo.User">
SELECT * FROM user WHERE id = #{param1} AND username = #{param2}
</select>
但这一种默认参数命名不再被允许,否则会报错
/**
* mapper.xml
*/
<select id="getUserInfo" resultType="com.cat.pojo.User">
SELECT * FROM user WHERE id = #{0} AND username = #{1}
</select>