MyBatis Mapper 接受参数的四种方式

一笑奈何 提交于 2020-02-11 21:14:47

对于单个参数而言,可以直接写#{param},这里的占位符名称没有限制,反正就一个参数一个占位符,不需要指定名称

对于多个参数,有常用的四种方式

根据位置排序号

public interface UserDao {
    public Integer addUser(String username, String password);
}

对应mapper文件中的片段

  <insert id="addUser">
    <!-- 按照参数位置从param1开始排序 -->
       insert into users(username, password) values(#{param1}, #{param2})
  </insert>

POJO对象传入

public interface UserDao {
    public Integer addUser(String username, String password);
}

对应mapper文件中的片段

  <insert id="addUser">
    <!-- 根据属性名访问数据 -->
       insert into users(username, password) values(#{username}, #{password})
  </insert>

Map对象传入

public interface UserDao {
    // mapper中#{}则通过map中的key访问
    public Integer addUser(Map<String, Object> map);
}

对应mapper文件中的片段

  <insert id="addUser">
       insert into users(username, password) values(#{username}, #{password})
  </insert>

@Param注解(Map对象的另一种形式)

public interface UserDao {
    // 注解中的值就是map的key
    public Integer addUser(@Param("name")String username, @Param("word")String password);
}

对应mapper文件中的片段

  <insert id="addUser">
       insert into users(username, password) values(#{name}, #{word})
  </insert>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!