mybatis的${}和#{} #{}取值符号会自动为String类型的参数加上‘’单引号、${}取值符号不会自动为String加上‘’单引号。所以如果用${}可能会出现数据库注入。 例如:select id from uers where age=${a} ; 如果我们给a传入18 or age >=1,如果数据库中所有人的年龄都大于等于1我们就得到了所有人的id,所以直接插入可能会导致很多问题。当然由于#{}会给字符串类型加引号,所以在遇到数据库的字段例如 where ${name}=#{user}就不得不用${}。