Mybatis参数获取的方式有两种,一种是#{},一种是${}。
1、#{}
#{} ==> select id,name from emp where id = #{id}
对于#{}我们是推荐使用的,原因如下:
1、会经过JDBC当中的PreparedStatement的预编译,会根据不同的数据类型来编译成对应的数据
2、能够有效的防止SQL注入。 推荐使用!!
2、${}
select id,name from emp where id = ${id} + ''
对于${}我们一般不推荐使用。
1、是以字符串拼接的方式,不进行预编译。
2、不能防止SQL注入。
但是对于${},我们有特殊的场景可以使用到它。如下所示:
1、临时调试使用,可以打印出完整的sql。
2、实现一些特殊功能:前提是一定要保证数据的安全性。例如动态表、动态列、动态sql。