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

本文记录Java学习过程中遇到的MyBatis中#{}和${}的区别~

两者的区别如下:

  • #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行Java类型和JDBC类型转换,#{}可以有效防止SQL注入。#{}可以接收简单类型值或POJO属性值。如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称;
  • ${}表示拼接SQL串,通过${}可以将parameterType传入的内容拼接在SQL中且不进行JDBC类型转换,${}可以接收简单类型值或POJO属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

标签: none