java面试1之Mybatis中#{}和${}的区别
2020-06-03 04:45
751 查看
#{}:sql语句的预处理参数,之后在sql中用?代替,使用时不需要关注数据类型,Mybatis自动实现数据类型的转换,可以防止SQL注入。占位符,用来传递参数。
${}:sql语句的直接拼接,不能实现数据类型转换,需要自己判断数据类型。不能防止SQL注入。用于SQL拼接。
注:在SQL语句动态时,必须使用${}。因为Mybatis不会修改或转义字符串。
注:SQL注入 :是一种的数据库攻击手段。比如恶意用户在填写表单时填写Sql关键字,使数据库执行非常规代码。
相关文章推荐
- JAVA面试要点003_Mybatis中#和$的区别
- java面试笔试题:JSP中动态INCLUDE与静态INCLUDE的区别?
- Java面试系列【public、private、protected区别】-访问权限,基础篇
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- java面试笔试题:String 和StringBuffer的区别
- JAVA面试中问及HIBERNATE与 MYBATIS的对比
- 面试之mybatis和hibernate的区别
- JAVA面试中问及HIBERNATE与 MYBATIS的对比总结
- 【最近面试遇到的一些问题】java中list、set和map 的区别
- Java面试04--StringBuffer、StringBuilder、String的区别
- mybatis javaType 和 jdbcType 区别
- 前端面试-难点问题2-java和javascript的区别
- [Java面试七]Mybatis总结以及在面试中的一些问题.
- 面试常问——java中的“==”和equals的区别
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- mybatis加jdbctype,jdbctype和javatype区别mybatis插入insert空指针无效字符
- java基础之面试篇四-单向链表和双向链表区别
- [java面试] Java面试之struts1与struts2的区别
- java面试之Final、finally、finalize区别
- Java 面试高频提问知识点之:Set、List 和 Map 的区别