(七)参数处理parameter或在mapper中如何传递多个参数

一、多个参数

public int selectUser1(String name,int age);

   <!-- 
   多个参数会封装成map
   key:param1 ....,paramn或者参数的索引也可以
   value:传入的参数值
   #{}就是从map中获取指定的key值
    -->
  
   <select id="selectUser1" resultType="int">
       select id from `tb_Student` where name= #{param1} and age=#{param2}
    </select>

二、见明知意的多个参数


public int selectUser2(@Param("id")String name,@Param("age")int age);


    <!-- 
   
       用param1..n不能做到见名知意, 可以在接口中指定@param("")
  key:使用@Param注释指定的值
  value:参数值
  #{指定的key}取出对应的参数值
  public int selectUser2(@Param("id")String name,@Param("age")int age);
     -->
      <select id="selectUser2" resultType="int">
       select id from `tb_Student` where name= #{name} and age=#{age}
    </select>

三、POJO

//pojo
	public int selectUser3(student stu);

 <!-- 
    若多个参数正好是业务逻辑的数据类型。可以直接传入pojo
    #{属性名}:取出传入的pojo的属性值
     -->
      <select id="selectUser3" parameterType="student" resultType="int">
       
        select id from `tb_Student` where name= #{name} and age=#{age}
    </select>

四、用map传非pojo

//map
	public int selectUser4(HashMap<String, Object> map);

 <!-- 
     Map:
        如果多个参数不是业务逻辑模型中的数据,没有对应的pojo
   为了方面,也可以传入map
   #{key}:取出map中
   若经常要用,则要编写一个TO(Transfer Object)
   -->  
   <select id="selectUser4" resultType="int">
        select id from `tb_Student` where name= #{name} and age=#{age}
    </select>
    

五、传入集合

(八)

 

 

 

 

 

 

 

 

posted @ 2019-05-27 16:51  测试开发分享站  阅读(680)  评论(0编辑  收藏  举报