(七)参数处理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>
五、传入集合
见(八)