myatis常用的传递参数的四种方式和注意事项

一.利用@Param注解

在Dao层定义方法的时候形参处直接用@Param注解来决定决定别名,然后直接在对应的mapper.xml配置文件中直接用#{别名}来调用即可

//Dao文件中
	void insertUser(@Param("username")String username, @Param("passwd")String passwd); 
	
//mapper.xml文件中 
   
	insert into users (username,passwd)values(#{username},#{password}) 

如果传入的Param是个javabean类,比如下面这个例子,那就用别名.属性名的方式获取类中的值

但是一旦要注意,mybatis中默认是先去调用这个类中的getxxx方法(不区分大小写)来获取属性值,如果能找这个方法就调用这个方法来获取属性值,如果找不到的话会直接去取类中的属性值。

比如在getUsername这个方法中,返回"123",那么下面u.username就只会取到123这个值

//Dao文件中
	User queryUser(@Param("u") User user);
//Mapper文件中 

二.传入javabean

这里要注意javabean类中的属性名,注意点和上面param传入javabean类一样

//Dao文件中
User queryUser(User user); 

//mapper.xml文件中 

三.利用map传递参数(推荐)

这种也是我日常开发用的比较多的,map可以传入任何类型的参数,甚至是集合List,所以几乎可以说map是万能的,但是虽然用map虽然方便,但是更消耗资源,如果参数较少建议上@Param的方式即可。

利用map传递参数后,在mapper.xml中直接调用#{key}即可得到对应value。在使用ajax请求封装的数据为json时,controller层形参用Map接的话就可以直接扔进方法中调用很方便

myatis常用的传递参数的四种方式和注意事项_第1张图片

四.传入List

当有多个数据需要传入时,也可以传入一个List,然后通过foreach遍历取到要的每个元素。其中注意collection这个属性默认以list作为键

myatis常用的传递参数的四种方式和注意事项_第2张图片

myatis常用的传递参数的四种方式和注意事项_第3张图片

controller层调用

myatis常用的传递参数的四种方式和注意事项_第4张图片

myatis常用的传递参数的四种方式和注意事项_第5张图片

下面是foreach的用法总结(截自别人网上的)

myatis常用的传递参数的四种方式和注意事项_第6张图片

你可能感兴趣的:(mybatis)