mybatis多个参数时传参方式

第一种方案

DAO层的函数方法 

Lecture getLecture(Integer id, Integer parentId);

 

对应的mapper.xml

  <select id="getLecture" resultMap="BaseResultMap">
    select  * from lecture
    where id = #{0} and parent_id = #{1}
  </select>

 

其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

这种方案没有证实过

 

第二种方案

通过map传多参数

DAO层的函数方法 

Lecture getLecture(Map paramMap);

 

 

对应的mapper.xml

  <select id="getLecture" resultMap="BaseResultMap">
    select  * from lecture
    where id = #{id,jdbcType=INTEGER} and parent_id = #{parentId,jdbcType=INTEGER}
  </select>

 

Service层调用

Map paramMap=new hashMap();
paramMap.put(“id”,100);
paramMap.put(“parentId”,10);

 

 

这种方案每次调用都太麻烦,而且方法参数不直观

 

第三种方案

DAO层的函数方法 

Lecture getLecture(@Param("id") Integer id, @Param("parentId") Integer parentId);

 

这里得注意,使用@Param时,要引入的package路径为:

import org.apache.ibatis.annotations.Param;

 

 

对应的mapper.xml

<select id="getLecture" resultMap="BaseResultMap">
    select  * from lecture
    where id = #{id,jdbcType=INTEGER} and parent_id = #{parentId,jdbcType=INTEGER}
  </select>

 

posted @ 2019-12-24 13:21  快速突围  阅读(402)  评论(0编辑  收藏  举报