mybatis ${}的特点及用法
${}
是一个取值符号,并不是占位符,在使用sql
的预处理语句是应该用#{}
而不是${}
。
${}
的特点如下:
- 它会把其内部变量解析为字符串值拼接到一条语句上,不会做其余的处理,例如加
''
- 因为是拼接字符串,因此可能会导致
sql
注入
${}
的用法如下:
- 数据库的一些元数据赋值,如库名、表名需要使用它
- 拼装sql时已经自带了
''
语句的变量赋值需要使用它,而不能用#{}
,后者会再加一层''
导致sql
错误,其中比如order by
和like
等语句 - 一些字符串常量的赋值可以使用它