MyBatis 内置的主要参数有:
- _parameter:代表整个参数对象。
- {parameter}:代表参数的属性。
- {} :可以防止 SQL 注入。
- $_parameter:代表参数的字对象或者 map 中的属性。
- ${} :不能防止 SQL 注入(不推荐使用)。
具体使用如下:
public class User {
int id;
string name;
}
<select id="findUser" parameterType="user" resultType="user">
select * from users where id = #{id} and name = #{name}
</select>
com.itzhimei.User user = new com.itzhimei.User();
user.setId(1);
user.setName("John");
mapper.findUser(user);
这里:#{id} 代表参数 user 的属性 id。
此外,MyBatis 还可以使用如下参数:
- @param:用于给参数取别名
@param {id}
select * from users where id = #{id}
然后在 Java 代码中:
map.put("id",1);
mapper.findUserById(map);
- @parameter:直接使用具体的参数名称取代
@parameter {name}
select * from users where name = #{name}
此外,MyBatis 还提供以下参数:
- #{}:可以防止 SQL 注入
- ${}:直接拼接进 SQL 语句, 不能防止 SQL 注入(不推荐使用)
- *:代表所有参数
总的来说,MyBatis 内置的参数主要用于从 XML 中获取动态 parameters,支持完善的SQL参数化。