#{} : 根据参数的类型进行处理,比如传入String类型,则会为参数加上双引号。#{} 传参在进行SQL预编译时,会把参数部分用一个占位符 ? 代替,这样可以防止 SQL注入。${} : 将参数取出不做任何处理,直接放入语句中,就是简单的字符串替换,并且该参数会参加SQL的预编译,需要手动过滤参数防止 SQL注入。mybatis 中优先使用 #{};当需要动态传入 表名或列名时,再考虑使用 ${}${} 比较特殊, 他的应用场景是 需要动态传入 表名或列名时使用