${参数},该参数不会转义,会被直接写入sql中,无法防止sql注入攻击。 #{参数},该参数会被转义成字符串,和?占位符功能相似,转义后,可以防止sql注入攻击。 $一般用来传数据库对象,比如表名 一般能用#就不要用$ ps:mybatis还会遇到 <![CDATA[]]> 的用法,该符号内的内容不会被当成字符串,而是直接当一个sql语句,比如执行一个存储过程