MyBatis中 # 和 $ 的区别?

#相当于对数据加上双引号,$相当于直接显示数据

  1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sq 时的值为:order by “111”;如果传入的值是id,则解析成的sql为:order by “id”
  2. $将传入的数据直接显示生成在sql中。如:order by u s e r i d user_id ,如果传入的值是111,那么解析成sql 时的值为:order by user_id,;如果传入的值是id,则解析成的sql为:order by id
  3. #方式能够很大程度防止sql 注入
  4. $方式无法防止sql注入
  5. $方式一般用于传入数据库对象,例如传入表名
  6. 一般能用#的就别用$

猜你喜欢

转载自blog.csdn.net/tian_ci/article/details/85706487
今日推荐