对于单个参数而言,可以直接写#{param}
,这里的占位符名称没有限制,反正就一个参数一个占位符,不需要指定名称
对于多个参数,有常用的四种方式
根据位置排序号
public interface UserDao {
public Integer addUser(String username, String password);
}
对应mapper文件中的片段
<insert id="addUser">
<!-- 按照参数位置从param1开始排序 -->
insert into users(username, password) values(#{param1}, #{param2})
</insert>
POJO对象传入
public interface UserDao {
public Integer addUser(String username, String password);
}
对应mapper文件中的片段
<insert id="addUser">
<!-- 根据属性名访问数据 -->
insert into users(username, password) values(#{username}, #{password})
</insert>
Map对象传入
public interface UserDao {
// mapper中#{}则通过map中的key访问
public Integer addUser(Map<String, Object> map);
}
对应mapper文件中的片段
<insert id="addUser">
insert into users(username, password) values(#{username}, #{password})
</insert>
@Param注解(Map对象的另一种形式)
public interface UserDao {
// 注解中的值就是map的key
public Integer addUser(@Param("name")String username, @Param("word")String password);
}
对应mapper文件中的片段
<insert id="addUser">
insert into users(username, password) values(#{name}, #{word})
</insert>