在使用Mybatis时,如果入参不止一个,有以下2种方式进行传参(仅本人了解到的)
示例:根据用户名密码查询用户
第一种:这种方式导入的是mybatis的Param包,不是Spring的。
import org.apache.ibatis.annotations.Param;
DAO:
/**
* @description: 根据用户名密码查询用户
* @param: username,password
* @return: UserPO
*/
UserPO getUser(@Param("username")String username, @Param("password")String password);
对应的Mapper.xml
<select id="getUser" resultType="com.dy.demo.model.po.UserPO">
select
username,
password
from user
where username=#{username,jdbcType=VARCHAR}
and password=#{password,jdbcType=VARCHAR}
</select>
注意:@Param括号中的内容对应#{}中的内容
将参数封装成Map,将map当作入参。
Service层
Map<String, String> map = new HashMap<>();
map.put("username", username);
map.put("password", password);
UserPO user = userPOMapper.getUser(map);
DAO:
UserPO getUser(Map map);
对应的Mapper.xml
<select id="getUser" resultType="com.dy.demo.model.po.UserPO">
select
username,
password
from user
where username=#{username,jdbcType=VARCHAR}
and password=#{password,jdbcType=VARCHAR}
</select>