MyBatis中#{}和${}

在MyBatis中有两种动态传递参数的方式#{},${}
#{}:占位符
KaTeX parse error: Expected 'EOF', got '#' at position 9: {}:拼接符 #̲{}是预编译,{}是字符串拼接
变量替换后#{}会自动加上单引号,${}不会加上单引号
#{}能防止sql注入 ${}不能防止sql注入

#{} 和 KaTeX parse error: Expected 'EOF', got '#' at position 20: …实例:假设传入参数为 1 1)#̲{}:select * fro…{}:select * from t_user where uid= 'KaTeX parse error: Expected 'EOF', got '#' at position 16: {uid}' (2)然后 1)#̲{}:select * fro…{}:select * from t_user where uid= ‘1’
(3)最后
1)#{}:select * from t_user where uid= ‘1’
2)${}:select * from t_user where uid= ‘1’

#{} 和 ${} 在使用中的技巧和建议
(1)不论是单个参数,还是多个参数,一律都建议使用注解@Param("")
(2)能用 #{} 的地方就用 #{},不用或少用 ${}
(3)表名作参数时,必须用 ${}。如:select * from ${tableName}
(4)order by 时,必须用 ${}。如:select * from t_user order by ${columnName}
(5)使用 ${} 时,要注意何时加或不加单引号,即 和 ′ {} 和 ' {}’

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页