MyBatis中#{}和${}的区别

1.在MyBatis 的映射配置文件中,动态传递参数有两种方式:

  (1)#{} 参数占位符,sql预编译,变量替换后自动加上单引号' ',能防止sql注入

  (2)${} 字符串替换,sql拼接,变量替换后不会加上单引号' ',不能防止sql注入

2.#{},${} 使用的建议:

  (1)表名作参数时,必须使用${}。如:select * from ${tableName}

  (2)order by 时,必须使用${}。如:select * from user order by ${orderColumn} ${orderType}

  (3)使用${}时,要注意加或不加单引号,即${} / '${}'

  (4)除以上三点,能用 #{} 的地方,坚决不用 ${}。

posted @ 2019-01-14 09:50  吴wuwu  阅读(158)  评论(0编辑  收藏  举报