Mybatis中当参数不止一个时的2种传参方式

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

猜你喜欢

转载自blog.csdn.net/Dxx_23/article/details/80363352