单个参数
- 若无
@Param
注解,Blog getBlog(Long id);
,mybatis中传入的变量名id 可以随便写 如#{0},#{id}, #{aaa} … - 如果带有注解
Blog getBlog(@Param("id") Long id);
,则此时mybatis中传入的变量名id只能写成#{id},select b from t_blog b where b.id = #{id}
多个参数
- 若无注解,
Blog getBlog(Long id,String name);
, mybatis的mapper.xml中传入的变量名只能是 #{arg0},#{arg1} 或者是#{param1},#{param2}分别对应第一个参数id,第二个参数name。其他的任何变量名都不可以,会报
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘param0’ not found. Available parameters are [arg1, arg0, param1, param2]
即使#{id},#{name}也不可以
- 有注解,
Blog getBlog(@Param("id") Long id,@Param("name") String name);
就只能用#{id},#{name}表示