1.单个参数:mybatis不会做特殊处理
#{参数名/任意名}:取出参数值。
DAO层接口:
public void deleteEmpById(Integer id);
配置文件:
<delete id="deleteEmpById">
delete from tbl_employee where id=#{id}
</delete>
2.多个参数:mybatis会做特殊处理。
多个参数会被封装成 一个map
key:param1...paramN,或者参数的索引也可以
value:传入的参数值
#{}就是从map中获取指定的key的值;
DAO层接口:
public Employee getEmpByIdAndLastName(Integer id,String lastName);
配置文件:
<select id="getEmpByIdAndLastName" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where id = #{param1} and last_name=#{param2}
</select>
【命名参数】:明确指定封装参数时map的key;@Param("id")
多个参数会被封装成 一个map
key:使用@Param注解指定的值
value:参数值
#{指定的key}取出对应的参数值
DAO层接口:
public Employee getEmpByIdAndLastName(@Param("id")Integer id,@Param("lastName")String lastName);
配置文件:
<select id="getEmpByIdAndLastName" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where id = #{id} and last_name=#{lastName}
</select>
3.
POJO:
如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo;
#{属性名}:取出传入的pojo的属性值
DAO层接口:
public Long addEmp(Employee employee);
配置文件:
<insert id="addEmp" parameterType="com.atguigu.mybatis.bean.Employee">
insert into tbl_employee(last_name,email,gender)
values(#{lastName},#{email},#{gender})
</insert>
4.
Map:
a.如果多个参数不是业务模型中的数据,没有对应的pojo,不经常使用,为了方便,我们也可以传入map
#{key}:取出map中对应的值
DAO层接口:
public Employee getEmpByMap(Map<String, Object> map);
配置文件:
<select id="getEmpByMap" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
b.返回一条记录的map;key就是列名,值就是对应的值
DAO层接口:
public Map<String, Object> getEmpByIdReturnMap(Integer id);
配置文件:
<select id="getEmpByIdReturnMap" resultType="map">
select * from tbl_employee where id = #{id}
</select>
c.多条记录封装成 一个map;Map<Integer,Employee>:键是这条记录的主键,值是记录封装后的JavaBean
DAO层接口:
@MapKey("id") //指定查出的数据中以id为key
public Map<Integer, Employee> getEmpByLastNameLikeReturnMap(String lastName);
配置文件:
<select id="getEmpByLastNameLikeReturnMap" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where last_name like #{lastName}
</select>
5.返回List
DAO层接口:
public List<Employee> getEmpsByLastNameLike(String lastName);
配置文件:
<select id="getEmpsByLastNameLike" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where last_name like #{lastName}
</select>
在配置文件中返回类型为实体;