由于在做项目的时候,我看见同事使用的传入参数类型各式各样,感觉没规律可言,闲暇的时候我就自己搭建了项目做了一些传入参数的测试(当然其实更好的方式是看源码,但是博主能力有限,毕竟入行没多久,看起来很吃力,只能靠测试来找规律,下面是我发现的小技巧,我测试的是3.4.x版本的,猜想应该现在用的版本规律都差不多);
首先声明,常用的不管传入参数是什么,sqlStatement中的parameterType都可以不写,如下图:
请关注6、
1: 对于传入参数为对象类型的,直接使用属性.属性.属性获取值 , 如: #{xx.xx.xx};
2:对于传入参数为map类型的,直接使用key获取值,如 : map = {"name": "张三‘‘},使用#{name}获取“张三”;
3: 对于传入参数为集合类型,一般都会使用到foreach标签,在collection属性中使用collection或者list或array获取该集合,collection, list是针对List类型,array是对数组类型,表达式为:collection="collection",collection="list",collection="array";
4 : 对于简单类型,获取的时候可以通过任意键获取。如 : #{我是任意键},#{x},#{y},#{z}均可获取;
5 : 对于单个传入参数,使用@Param(“key”)的时候可以把参数装到map中,和2一样,使用key获取值;
6 : 对于多个参数(包含简单类型,list和array),如果使用全部使用@Param装到map中,就可像2一样使用key获取值,当然也可以使用通用方法,对于第一个参数我们就使用#{param1}获取,第二个参数使用#{param2}获取,以此类推;如果不使用@Param,也可以使用#{param1},#{param2}获取(还可以使用arg0,arg1..可忽略);
其实我可能也没描述清楚,在此表示惭愧!
————————————————
版权声明:本文为CSDN博主「迪迪的男票子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35423108/article/details/76255202