个人理解:@param和@requestParam区别

@param和@RequestParam区别

我的理解:

个人以为当初的设计目的只是为了解决开发人员之间命名不一致的问题

@Param就是Mapper/Repository层,为了解决mybatis字段与在后端Java字段不一致的情况,相当于解决后端名字间的映射关系

@RequestParam就是Controller层,为了解决前端(表单提交)传入后端数据与在后端Java字段不一致的情况,相当于解决前端名字间的映射关系

 

当然现在这些注解还有一些其他功能:

@RequestParam有三个配置参数:

  • required 表示是否必须,默认为 true,必须。
  • defaultValue 可设置请求参数的默认值。
  • value 为接收url的参数名(相当于key值)。

换句话说就是可以默认设置一个默认值或空‘

@Param

另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

    /**
     * 此处要注意的是,由于该方法需要传入多个参数,在进行Mybatis配置时,
     * 没有办法同时配置多个参数,另外MyBatis还提供了一个使用注解来参入
     * 多个参数的方式。这种方式需要在接口的参数上添加@Param注解。。
     * 注意,以下两种写法是完全相同的。但使用的时候要使用第一种类型
     */
    


    User login(@Param(value="name")String name,@Param(value="password")String password );
//    User login(String name,String password);

 

配置如下:

 <select id="login"  resultType="com.pojo.User">
    select * from us where name=#{name} and password=#{password}
   </select>

 

题外话:

@RequestBody常常将前端传来的post请求(Json格式的数据)进行解析,例如批量插入数据时,需要@RequestBody

@ResponseBody就是为了将Java对象以Json格式的形式传给前端(举个生活中的例子,用邮箱发邮件,根据SMTP协议,以数据流【随便说的,反正是某种特定形式啦】的形式发给对方,其实这个中间的形式跟Java前后端相连是不是很像)

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值