-
#{}是占位符,通过预编译处理;${}是拼接符,通过字符串替换,非预编译处理。
-
#{}可以放置SQL注入攻击;${}不能防止SQL注入攻击
-
Mybatis会将SQL中的#{}替换为?,并通过PreparedStatement的set方法进行赋值;但Mybatis会直接将${}替换为变量的值,相当于使用的是Statement方式进行编译
Mybatis中#{}和${}的区别是什么?
最新推荐文章于 2024-08-02 16:18:07 发布
#{}是占位符,通过预编译处理;${}是拼接符,通过字符串替换,非预编译处理。
#{}可以放置SQL注入攻击;${}不能防止SQL注入攻击
Mybatis会将SQL中的#{}替换为?,并通过PreparedStatement的set方法进行赋值;但Mybatis会直接将${}替换为变量的值,相当于使用的是Statement方式进行编译