何时添加@param注解

在程序中有时发现在mapper文件中,有时候有param注解,有时候没有,如下:

来分析下Param的具体应用。

在mapper文件中不写@param,可在xml中需标明parameterType,也可不用谢,mybatis可自动识别。

若在mapper中写上@param,则在xml中可不写。

通常在mapper中标明,在传入多个参数的时候具有扩展性,因为parameterType中只允许返回一种类型。

 

parameterType有基本数据类型和复杂的数据类型配置。
1.基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是
自己定的类类型。包括int,String,Integer,Date,如下:

 (1)根据id进行相应的删除:<delete id="deleteById" parameterType="Integer">

(2)添加员工:<insert id="addEmp" parameterType="com.pojo.Employee">

2.复杂数据类型:包含java实体类,map。

配置如:

  <select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">  

       select * from Teacher where c_id=#{id} and sex=#{sex} 

  </select>  

java代码如下:

    Map<String,String> map=new HasMap<String,String>();  

    map.put("id","2");  

    map.put("sex","男");  

    List<Teacher> tList = teacherMapper.selectTeacher(map);   

    for (Teacher entityTemp : tList) {    

    System.out.println(entityTemp.toString()); } 

另外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>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值