参考答案
#{}和${}的概念:
- ${} 是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—