Mybatis输入和输出映射(#{}和${}的区别)

#{}占位符                                                                                                                      ${}拼接符
如果parameterType是基础类型那么#{}里面的变量可以随便填                                          如果parameterType是基础类型那么${}里面的变量必须写value
如果parameterType是pojo类型,那么#{}里面的变量必须是属性名称                                  如果parameterType是pojo类型,那么${}里面的变量必须是属性名称
如果parameterType是pojo的包装类型,那么#{}里面的变量必须是属性.属性.属性...            如果parameterType是pojo的包装类型,那么${}里面的变量必须是属性.属性.属性...
如果parameterType是map类型,那么#{}里面的变量必须是key                                           如果parameterType是map类型,那么${}里面的变量必须是key

注意:拼接符有sql注入的风险,一般情况下都需要将传入的参数进行过滤,将sql的关键词过滤才可以

原文地址:https://www.cnblogs.com/zlw-xf/p/8284831.html