mybatis(#和$的区别)

Posted zfyyfw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis(#和$的区别)相关的知识,希望对你有一定的参考价值。

1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#id,当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id =‘1‘.

 2 $是将传入的数据直接显示生成sql语句,eg:select id,name,age from student where id =$id,当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id = 1.

 3 使用#可以很大程度上防止sql注入。(语句的拼接  #xxx,使用的是PreparedStatement,会有类型转换,比较安全 简单的说就是#是经过预编译的,是安全的,$是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。)

 4 但是如果使用在order by 中就需要使用 $.

 5 在大多数情况下还是经常使用#,但在不同情况下必须使用$. 

以上是关于mybatis(#和$的区别)的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 中 # 和 $ 的区别及应用场景

mybatis和ibatis的区别

请简述MyBatis和Hibernate的区别。

mybatis中的$和#的区别

MyBatis中resultMap=“Map”和resultType=“Map”区别

Hibernate和MyBatis的区别