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

一.利用@Param注解

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

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

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

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

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

//Dao文件中
	User queryUser(@Param("u") User user);
//Mapper文件中 
<select id="queryUser" parameterType="User"  resultType="User" >  
	select * from users    where username=#{u.username} and passwd=#{u.passwd} 
</select>

二.传入javabean

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

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

//mapper.xml文件中 
<select id="queryUser" parameterType="User"   resultType="User" >    
	select * from users    where username=#{username} and passwd=#{passwd}  
</select>

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

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

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

img

四.传入List

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

img

img

controller层调用

img

img

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

img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值