1. 单参数低版本xml方式Mapper接口方法不需要指定,注解方式需要指定
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
对应mybatis3.4.6
xml方式
public int deleteByIds(String ids);
xml文件
<delete id='deleteByIds'>
DELETE FROM t_account WHERE account_no in
<foreach collection ='ids.split(",")' item='id' open='(' separator =',' close=')'>
#{id}
</foreach>
</delete>
注解方式
@Delete("<script>" +
"DELETE FROM t_account WHERE account_no in\n" +
"<foreach collection ='ids.split(\",\")' item='id' open='(' separator =',' close=')'>" +
"#{id}" +
"</foreach>" +
"</script>")
public int deleteByIdsAnno(@Param("ids")String ids);
如果不指定会报错
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘ids’ in ‘class java.lang.String’
2. 单参数高版本xml方式和注解方式都不需要指定@Param
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
mybatis3.5.7
xml方式
public int deleteByIds(String ids);
xml文件
<delete id='deleteByIds'>
DELETE FROM t_account WHERE account_no in
<foreach collection ='ids.split(",")' item='id' open='(' separator =',' close=')'>
#{id}
</foreach>
</delete>
注解方式
@Delete("<script>" +
"DELETE FROM t_account WHERE account_no in\n" +
"<foreach collection ='ids.split(\",\")' item='id' open='(' separator =',' close=')'>" +
"#{id}" +
"</foreach>" +
"</script>")
public int deleteByIdsAnno(String ids);