第一种方案:下标传参
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>
说明:在参数不多的情况,推荐第三种方案,比较直观。