1.占位符 #{} ${}
一般参数传递用#{},sql执行时参数带引号“”
在进行group by 或order by 的时候,使用${},sql执行的时候不带引号
原则:能用#的地方不要用$,避免sql注入,更加安全,
列个例子供参考:
(1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id",相当于preparedStatement,可以使用基本类型,自定义类型以及map类型(2)$将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id,相当于Statement,不可以使用基本类型,只能使用自定义类型或map类型