博主分享免费Java教学视频,B站账号:Java刘哥
一、举例说明
- SELECT * FROM user WHERE name LIKE "%小明%";
- SELECT * FROM user WHERE name LIKE #{value};
- SELECT * FROM user WHERE name LIKE "%${value}%";
二、区别
动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个 BoundSql 对象,也是在此处对动态 SQL 进行处理的。在动态 SQL 解析阶段, #{ } 和 ${ } 会有不同的表现。 具体如下: 当我们使用 #{} 的时候- SELECT * FROM user WHERE name LIKE #{value};
- select * from user where name = ?;
- SELECT * FROM user WHERE name LIKE "%${value}%";
- SELECT * FROM user WHERE name LIKE "%小明%";
- #方式能够很大程度防止sql注入。
- $方式无法防止Sql注入。
- $方式一般用于传入数据库对象,例如传入表名.
- 一般能用#的就别用$.
- 微信
- 交流学习,有偿服务
- 博客/Java交流群
- 资源分享,问题解决,技术交流。群号:590480292
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏