【Mybatis】参数处理

 

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>

 

在配置文件中返回类型为实体;

 

 

评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值