简介
mybatis的占位符有两种:#{}、${}。
共同点:
- 都可以获取参数列表中的参数
不同点:
- #{}采取预编译的形式将参数设置到sql语句中,可以防止sql注入
- ${}直接将取出的值拼装在了sql中,会出现安全问题
一、#{}
应用场景:
普通的条件参数占位
可应用在条件参数上
@select("select * from tb_test where id=#{id}")
public Test findById(int id);
二、${}
应用场景:
可以用在jdbc不支持占位符的地方,比如:表名、排序等等。
@select("select * from tb_${tableName} where id=#{id}")
public Test findById(String tableName,int id);