Mybatis中有哪些占位符?区别是什么?


一、Mybatis中有哪些占位符?

Mybatis有两个占位符,分别是#{}和${}

二、Mybatis中#{}和${}有什么区别?

-- #{}
select id from #{table} where id = #{id}

-- ${}
select id from ${table} where id = ${id};

区别如下:

  • 防止SQL注入:#{}类似jdbc中的PreparedStatement,对于传入的参数会在预编译阶段用代替,可以有效防止SQL注入。而${}是直接将参数拼到SQL里,Mybatis不会对它进行特殊处理
  • 使用场景:#{}尽量能用到的地方都用上吧,而${}一般用在动态排序字段上(如order by ${sortParam}

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录