假设我们的sql需要多个参数,例如:
<select id="login" resultType="com.zpc.mybatis.pojo.User">
select * from tb_user where user_name = #{userName} and password = #{password}
</select>
而我们的函数如下:
/** * 登录(直接使用注解指定传入参数名称) * * @param userName * @param password * @return */ public User login( String userName, String password){查询,传入参数xxx}
#{userName}和#{password}能与userName、password自动映射上吗?答案是不能
方法一
<select id="login" resultType="com.zpc.mybatis.pojo.User"> select * from tb_user where user_name = #{0} and password = #{1} </select>
通过参数需要来映射
方法二
<select id="login" resultType="com.zpc.mybatis.pojo.User">
select * from tb_user where user_name = #{param1} and password = #{param2}
</select>
通过param1与param2来映射,与方法一类似
显然这两种方法都缺乏灵活性
方法三
public User login(@Param("userName") String userName, @Param("password") String password);
在形参处通过注解表明映射关系