当前位置: 移动技术网 > IT编程>数据库>Mysql > Mybatis中#与$的区别

Mybatis中#与$的区别

2019年04月19日  | 移动技术网IT编程  | 我要评论

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语句的预编译。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网