Mybatis中#与$的区别
程序员文章站
2022-05-18 14:32:45
mybatis中#与$的区别
mybatis中的#{}用于传递查询的参数,用于从dao层传递一个string参数过来(也可以是其他参数),select * from 表名 ord...
mybatis中#与$的区别
mybatis中的#{}用于传递查询的参数,用于从dao层传递一个string参数过来(也可以是其他参数),select * from 表名 order by age=#{age}
mybatis会把这个参数转换成一个字符串。select * from 表名 order by age="age" 相当于jdbc中的预编译,安全。
而${}一般用于order by的后面,mybatis不会对这个参数进行任何的处理,直接生成了sql语句。例:传入一个年龄age的参数,select * from 表名 order by ${age}
mybatis生成的语句为 select * from 表名 order by age mybatis不会对$传递的参数做任何处理,相当于jdbc中的另外一种编译方式。
一般我们使用#{},不使用${},原因:
会引起sql注入,${}会直接参与sql编译。会影响sql语句的预编译。
上一篇: 西沙群岛有什么好玩的?
推荐阅读
-
mysql unique key在查询中的使用与相关问题
-
Mybatis中的config.xml配置文件详细解析
-
android中Invalidate和postInvalidate的更新view区别
-
Spring Boot 中application.yml与bootstrap.yml的区别
-
详解HTML5中的
-
详解HTML5中div和section以及article的区别
-
对python中类的继承与方法重写介绍
-
老生常谈jquery中detach()和remove()的区别
-
php中require和require_once的区别说明
-
Android MotionEvent中getX()和getRawX()的区别实例详解