首页 > 代码库 > mybatis中的#和$的区别

mybatis中的#和$的区别

mybatis中的#和$的区别

1,#将传入的数据都当成一个字符窜,会对自动传入的数据加一个双引号,如;order  bt   #user)id# ,如果传入的值是111那么解析成sql时的值是order by "111",如果传入的知识id,则解析成的sql为 order by ““id”;

2,$将传入的数据直接显示生成在sql中,如;order by $user_id$,如果传的值是111,那么解析成sql的值为order by user_id,如果传入的知识id,则解析成的sql为order by id;

3,#方式能够很大程度防止sql注入

4,$方式无法防止sql注入

5,$方式一般用于传入数据库对象,例如传入表名

6,一般能用#的就别用$

 

注;mybatis排序时使用order by动态参数是需要注意,用$而不是#

 

mybatis中的#和$的区别