场景1
当Mapper接口定义了多个参数的时候就需要使用Param注解来给参数取个名字,然后在Mapper.xml文件中,使用Param注解中的值(名字),告诉Mybatis你使用的变量是哪一个,用在哪,此时insert就不用在声明参数类型了,因为有多个参数类型,而paramType只能声明一个,同理,update,delete,select,都是一样的。
场景2
当Mapper接口只有一个参数的时候,在Mapper.xml文件中需要声明其参数类型,此时我们可以使用任意名称的变量来获取传入的值,因为传递进来的参数只有一个。(包括集合)
场景3
当Mapper接口定义了一个集合参数和简单类型参数的时候也需要使用Param注解来给参数取个名字,然后在Mapper.xml文件中使用取得名字来使用它们。集合在foreach中的colloection标签中,也是写的参数的名字,如果接口方法中只有一个集合参数,那么foreach中的colloection标签随便写什么都是可以的。