#{}和${}的区别是什么

参考答案

#{}和${}的概念:

  • ${} 是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,例如${driver}会被静态替换为com.mysql.jdbc.Driver。
  • #{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,例如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()

 

#{}和${}的区别:

  • #{}是预编译处理;${}是字符串替换。
  • #{}解析传递进来的参数数据,使用#{}可以有效的防止SQL注入,提高系统安全性;${}对传递进来的参数原样拼接在SQL中。

 

以上,是Java面试题【#{}和${}的区别是什么】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧