POJO:(Plain Ordinary Java Object
)简单的Java
对象,实际就是普通JavaBeans
如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo
;
public boolean updateEmp(Employee employee);
#{属性名}:取出传入的`pojo`的属性值
<!-- public void updateEmp(Employee employee); -->
<update id="updateEmp">
update tbl_employee
set last_name=#{lastName},email=#{email},gender=#{gender}
where id=#{id}
</update>
Map:
如果多个参数不是业务模型中的数据,没有对应的pojo
,不经常使用,为了方便,我们也可以传入map
public Employee getEmpByMap(Map<String, Object> map);
在查询时定义一个map
:
Map<String, Object> map = new HashMap<>();
map.put("id", 2);
map.put("lastName", "Tom");
Employee employee = mapper.getEmpByMap(map);
#{key}
:取出map
中对应的值
<!-- public Employee getEmpByMap(Map<String, Object> map); -->
<select id="getEmpByMap" resultType="com.atguigu.mybatis.bean.Employee">
select * from ${tableName} where id=${id} and last_name=#{lastName}
</select>
TO:
如果多个参数不是业务模型中的数据,但是经常要使用,推荐来编写一个TO(Transfer Object
)数据传输对象
Page{
int index;
int size;
}
========================思考================================
public Employee getEmp(@Param("id")Integer id,String lastName);
取值方法:id==>#{id/param1} lastName==>#{param2}
public Employee getEmp(Integer id,@Param("e")Employee emp);
取值方法:id==>#{param1} lastName===>#{param2.lastName/e.lastName}
特别注意:如果是Collection(List、Set)类型或者是数组,
也会特殊处理。也是把传入的list或者数组封装在map中。
key:是Collection用(collection),如果是List还可以使用这个key(list)
如果是数组用(array)
public Employee getEmpById(List<Integer> ids);
取值:取出第一个id的值: #{list[0]}