#{} 和 ${}的区别 区别: 1. #是占位符, 会对SQL进行预编译,相当于?; $是做sql拼接, 有SQL注入的隐患 2. #不需要关注数据类型, MyBatis自动实现数据类型转换; ${} 必须自己判断数据类型 联系: 两者都支持@param注解, 指定参数名称, 获取参数值. 推荐这种方式 一般做参数传递,都会使用#{} 如果不是做预编译,而是做拼接sql, 会使用${}, 例如表名称的变化