在使用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>
