0%

MyBatis参数传递

单个参数

  • 可以接受基本类型,对象类型,集合类型的值
  • MyBatis 可直接使用这个参数,不需要经过任何处理

多个参数

  • 任意多个参数,都会被 MyBatis 重新包装成一个 Map 传入
  • Map 的 key 是 param1,param2…,值就是参数的值


@param命名参数

  • 为参数使用 @Param 起一个名字,MyBatis 就会将这些参数封装进 map 中,key 就是我们自己指定的名字



POJO

  • 当这些参数属于我们业务 POJO 时,我们直接传递 POJO



Map

  • 我们也可以封装多个参数为 map,直接传递



参数传递源码分析

  • 会把参数给放到一个数组当中,如果一个参数, 内部处理时,会自动把该参数范围

  • 如果是多个参数,内部会做判断

  • 判断是否有 @param 注解

如果没有

  • 没有注解的话, 就直接使用 arg0 arg1… 为 key 放到 map 中,并且还会以 param1 和 param2… 为 key 放一份到map 中

如果有

  • 如果有注解的话,会使用注解当中的值,替换掉默认的 arg0 和 arg1,使用 @param 中的值,做为 key 放到一个 map 当中,并且还会以 param1 和 param2… 为 key 放一份到 map 中

↓赏一个鸡腿... 要不,半个也行↓