${"id"} 和#{"id"} 获取对象引用的区别?

Difference between ${"id"} and #{"id"} for getting the object reference?

这两个选择器有什么区别:$("id")和#('id')用于在mybatis mapper中获取对象引用xml。 我见过像

这样的例子
<select id="selectUsers" resultType="map">
  select id, username, hashedPassword
  from some_table
  where id = #{id}
</select>

还有这样的

 <select id="selectUser" parameterType="User" resultType="User">
  select id, username, hashedPassword
  from some_table
  where id = ${user.id}
</select>

#{id} - MyBatis 会生成一个 PreparedStatement
${id} - MyBatis 会直接注入语句 string

中的值

参见 MyBatis 文档中的 String_Substitution