MyBatis 内置的参数有哪些?

MyBatis 内置的主要参数有:

  1. _parameter:代表整个参数对象。
  2. {parameter}:代表参数的属性。
  3. {} :可以防止 SQL 注入。
  4. $_parameter:代表参数的字对象或者 map 中的属性。
  5. ${} :不能防止 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 还可以使用如下参数:

  1. @param:用于给参数取别名
@param {id}  
select * from users where id = #{id}

然后在 Java 代码中:

map.put("id",1);
mapper.findUserById(map);
  1. @parameter:直接使用具体的参数名称取代
@parameter {name}  
select * from users where name = #{name} 

此外,MyBatis 还提供以下参数:

  • #{}:可以防止 SQL 注入
  • ${}:直接拼接进 SQL 语句, 不能防止 SQL 注入(不推荐使用)
  • *:代表所有参数

总的来说,MyBatis 内置的参数主要用于从 XML 中获取动态 parameters,支持完善的SQL参数化。