关于mybatis中传入参数在相应映射文件中 Collection,List,Map,Set,@Param这几种的混合传入的获取
其他
2018-11-23 01:15:40
阅读次数: 0
本片文章还是基于mybatis的接口的方式(动态代理)来说明:
关于普通多值传入的方式以及获取方式链接:点击这里
第一种既有注解,又有普通参数 有注解的可以使用注解使使用的名字,没有注解的只能使用该参数对应的Key(param1或者其它位置) 示例:( ‘/’ ------> 表示或者的意思) public Employee getEmp(@Param("id")Integer id,String lastName);
取值:id==>#{id/param1} lastName==>#{param2} |
第二种:有普通参数,但是还有一个参数是一个对象 没有注解的只能使用该参数对应的Key(param1或者其它位置),另一个对象使用对应位置的key获得该对象,再获得其相应的属性!! 示例: public Employee getEmp(Integer id,Employee emp);
取值:id==>#{param1} lastName===>#{param2.lastName} |
第三种:有普通参数,但是还有一个参数是一个对象(但是该对象又使用了注解) 没有注解的只能使用该参数对应的Key(param1或者其它位置),另一个对象使用对应位置的key获得该对象,再获得其相应的属性!!(又因为该对象又有注解所以可以使用注解时的名字获得对象后,再获得其属性值) 示例:( ‘/’ ------> 表示或者的意思) public Employee getEmp(Integer id,@Param("e")Employee emp);
取值:id==>#{param1} lastName===>#{param2.lastName/e.lastName} |
第四种:如果是Collection(List、Set)类型或者是数组, ##特别注意: mybatis也会特殊处理。也是把传入的Collection或者数组封装在map中。(其中的key是mybatis封装好了,国定的) key: Collection(collection),(如果传入的是list,其中的key也可以是 (list)) 数组 (array) 示例:( ‘/’ ------> 表示或者的意思) public Employee getEmpById(List<Integer> ids);
取值:取出第一个id的值: #{collection[0]}
public Employee getEmpById(Set<Integer> ids);
取值:取出第一个id的值: #{collection[0]}
public Employee getEmpById(Collection<Integer> ids);
取值:取出第一个id的值: #{collection[0]}
public Employee getEmpById(Array<Integer> ids);
取值:取出第一个id的值: #{array[0]} |
转载自blog.csdn.net/qq_38263083/article/details/82685034