使用Mapper傳遞多個參數可以通過以下兩種方式實現:
在Mapper接口方法中,使用Map類型作為參數,將需要傳遞的多個參數以鍵值對的形式放入Map中,然后在SQL語句中使用#{key}的方式引用參數。
示例:
// Mapper接口
public interface UserMapper {
List<User> getUserList(Map<String, Object> params);
}
// Mapper XML文件
<select id="getUserList" parameterType="java.util.Map" resultType="User">
SELECT * FROM user WHERE age = #{age} AND gender = #{gender}
</select>
// 調用Mapper方法
Map<String, Object> params = new HashMap<>();
params.put("age", 20);
params.put("gender", "男");
List<User> userList = userMapper.getUserList(params);
在Mapper接口方法中,使用@Param注解給每個參數起一個名稱,在SQL語句中使用#{名稱}的方式引用參數。
示例:
// Mapper接口
public interface UserMapper {
List<User> getUserList(@Param("age") int age, @Param("gender") String gender);
}
// Mapper XML文件
<select id="getUserList" resultType="User">
SELECT * FROM user WHERE age = #{age} AND gender = #{gender}
</select>
// 調用Mapper方法
List<User> userList = userMapper.getUserList(20, "男");
注意:在使用多個參數時,需要確保參數的順序和@Param注解的名稱一致,否則可能會出現參數傳遞錯誤的情況。使用Map類型作為參數則沒有這個問題,但是需要在Map中明確指定參數名稱。