#{}将传入的参数当成一个字符串,会给传入的参数加上一个双引号。${}将传来的参数直接显示在sql中,没有双引号。#{}可有有效的防止sql注入,而${}没有。${}在预编译之前就把变量替换上去。会存在注入危险。