1、#{}是预编译处理,${}是字符串替换
2.MyBatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值
而在处理${}时,是把${}替换为变量的值。
3.使用#{}可以有效地防止SQL注入,提高系统安全性;因为一个#{}被解析为一个参数占位符,而${}仅仅为一个纯粹的String替换。
使用注意:
但是在mybatis排序使用order by 动态传参时,使用${}而不用#{}.
1、#{}是预编译处理,${}是字符串替换
2.MyBatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值
而在处理${}时,是把${}替换为变量的值。
3.使用#{}可以有效地防止SQL注入,提高系统安全性;因为一个#{}被解析为一个参数占位符,而${}仅仅为一个纯粹的String替换。
使用注意:
但是在mybatis排序使用order by 动态传参时,使用${}而不用#{}.