五 MyBatis参数传递
本文章为学习过程第五节,全过程查看该专栏
文章目录
MyBatis提供了ParamNameResolver类来进行参数封装
MyBatis参数封装:
单个参数
- POJO类型
- Map集合
- Collection
- List
- Array
- 其他类型
多个参数
1 多个参数
User select(@Param("username") String username,@Param("password") String password);
封装为map集合
map有键和值
值就是参数的值(String username , String password)
键有两种格式:
map.put(“arg0”,参数值1)
map.put(“param1”,参数值1)
map.put(“arg1”,参数值2)
map.put(“param2”,参数值2)
如果以后不使用@Param注解,可以使用arg0 param1这种参数来获取值
但是不推荐这个方法,因为参数多了之后阅读性很差
可以使用@Param注解,替换Map集合中默认的arg键名
2 单个参数
POJO类型: 直接使用,属性名 和 参数占位符名称 一致
Map集合:直接使用,键名 和 参数占位符名称 一致
Collection:封装为Map集合 可以使用@Param注解,替换Map集合中默认的arg键名
map.put(“arg0”,collection集合);
map.put(“collection”,collection集合);
List: 可以使用@Param注解,替换Map集合中默认的arg键名
map.put(“arg0”,list集合);
map.put(“collection”,list集合);
map.put(“list”,list集合);
Array: 可以使用@Param注解,替换Map集合中默认的arg键名
map.put(“arg0”,数组);
map.put(“array”,数组);
其他类型:直接使用。比如int
总结
将来都使用@Param注解来修改Map集合中默认的键名,并使用修改后的名称来获取值,这样的可读性更高