mybatis-传多个参数

第一种方案:下标传参

DAO层的函数方法

Public User selectUser(String name, String area);

对应的Mapper.xml

<select id="selectUser" resultMap="BaseResultMap"> 
    select * from user where name = #{0} and area = #{1} 
</select> 

说明:参数类型可以不写,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,后续参数按下标以此类推。


 第二种方案:map封装

DAO层的函数方法

Public User selectUser(Map<String, Object> paramMap);

对应的Mapper.xml

<select id="selectUser" parameterType="java.util.Map" resultMap="BaseResultMap"> 
  select
* from user where name = #{name,jdbcType=VARCHAR} and area = #{area, jdbcType=VARCHAR}
</select>

service层调用

Map<String, Object> paramMap = new hashMap(); 
paramMap.put("name", "参数值"); 
paramMap.put("area", "参数值"); 
User user = userDao.selectUser(paramMap);

 第三种方案:使用注解@param

DAO层的函数方法

Public User selectUser(@param("name")String userName, @param("area")String userArea);

对应的Mapper.xml 

<select id=" selectUser" resultMap="BaseResultMap"> 
   select * from user where name = #{userName,jdbcType=VARCHAR} and area=#{userArea, jdbcType=VARCHAR} 
</select>

说明:在参数不多的情况,推荐第三种方案,比较直观。

posted @ 2019-10-29 14:03  coolw  阅读(191)  评论(0)    收藏  举报