Mybatis学习-day02

172 阅读1分钟

Mybatis获取参数值的两种方式

${} Statement, 必须使用字符串拼接的方式操作SQL, 一定要注意单引号问题

#{} PreparedStatement: 可以使用通配符操作SQL, 因为在为String赋值时,可以自动加单引号, 因此不需要注意单引号问题

使用建议: 建议使用#{},在特殊情况下, 需要使用${}, 例如模糊查询批量查询

不同的参数类型, ${}和#{}的不同取值方式

当传输参数为单个String或基本数据类型和其他包装类

  • ${}只能以${value}${_parameter}获取
  • #{}可以以任意的名字获取参数值

当传输参数为JavaBean时

  • #{}${}都可以通过属性名直接获取属性值,但是要注意${}的单引号问题

当传输多个参数时, mybatis会默认将这些参数放在map集合中

  • 两种方式:
    • 键为0,1,2,3...N-1
    • 键为param1, param2, param3....paramN
  • #{}: #{0}, #{1}; #{param1}, #{param2}
  • ${}: {param1}, {param2},但是要注意`${}`的单引号问题

当传输Map参数时

  • #{}${}都可以通过键的名字直接获取值,但是要注意${}的单引号问题

命名参数

  • 可以通过@Param("key")为map集合指定键的名字
  • #{}${}都可以通过键的名字直接获取值,但是要注意${}的单引号问题