#{} 和 ${}的区别
#{}在sql中表示一个占位符“?”,通过#{}可以实现preparedStatement向占位符“?”设置值,自动进行java类型和jdbc类型转换。可以防止sql注入。#{}可以接收简单类型值或pojo属性值。如果parameterType传输单个简单类型值,#{}括号中可以是value或其他名称。
${}表示拼接sql串,Statement通过${}可以将parameterType传入的内容拼接在sql中,且不进行jdbc类型转换,${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。
总结:sql语句拼接,用${}比较方便,但是存在sql注入问题;不存在sql语句拼接可用#{}来实现。