关于MyBatis的mapper.xml文件中入参和返回值的书写的问题,相信很多小伙伴都有这方面的问题,由于mybatis中mapper中的方法参数和返回值类型是变化的,而有时入参或者返回值时可以省略的,而有时有时不可省略的。这就导致大家不知道parameterType,resultType什么时候可以省略,什么时候不能省略,我就在这里讨论一下这个问题。
resultType:
1.对于resultType的情况是比较简单的,一般来说增删改中mapper.xml文件中对应的resultType是不需要写的,因为增删改方法的返回值都是影响行数的int,mybatis自行处理,是不需要写的。
例如:
此处的delete标签中入参为Int,而返回值是影响行数的int,此时的resultType是不需要写的,图中也可以看出:使用idea编写时,也没有提示resultType的属性。所以第一种情况就是当增删改标签中的返回值是不需要写的。
2.当resultType指定查询返回的结果集是集合的类型时,则必须是泛型的类型。
例如:
此处的select标签的返回值是List集合,所以resultType为集合的泛型:users。所以第二种情况就是:当resultType指定查询返回的结果集是集合的类型时,则必须是泛型的类型。
3.其他情况返回值是什么,resultType对应的填即可。
parameterType
1.当参数≥2个的时候,一般使用@Param(“参数名”)进行注解,标签中是可以通过#{参数名}获取到参数的,所以,此时的parameterType也是不用写的。
例如:
此时的入参是两个String类型的参数,所以此时的parameterType是不需要写的。
2. 当入参参数是集合的时候如List,map等,parameterType的书写是可以省略的。
例如:
此处的insert标签中的返回值是影响行数的int,resultType不需要写,而入参是list,也是直接省略不写。所以第二种情况:当入参参数是集合的时候如List,map等,parameterType的书写是可以省略的。
3.其他情况下,parameterType均正常填写。
以上就是关于MyBatis的mapper.xml文件中入参和返回值的书写的问题,本人是初学的小白,十分欢迎各位伙伴讨论或者指出问题。