#{}和 ${}传参的区别如下: 1.使用#传入参数是,sql语句解析变量时候将添加""包裹变量,当成字符串来解析,$则不会用""包裹; 2.#能使用PreparedStatement语句提高一定的效率; 3.#{}传参能防止sql注入,如果你传入的参数为 单引号',那么如果使用${},这种方式 那么是会报错的; 4.如果要做动态的排序,动态查询某个字段比如 order by column,这个时候务必要用${},select * from table order by 'name' ,这样是没用 5.从安全角度出发,能用#就不要用$;