第一种map
<select id="findA" parametertype="map" resultMap="roleMap">
SELECT
id,role_name,note FROM t_role
WHERE role_name like concat
('%',#{roleName},'%')
and note like concat('%',#{note},'%')
</select>
public List<Role> findA(Map<String, String> params);//接口
HashMap<String, String> paramsMap = new HashMap<String, String>();
paramsMap.put("roleName", "me");
paramsMap.put("note", "te");
roleMapper.findA(paramsMap);
第二种@Param注解
public List<Role> findA(@Param("roleName")String roleName,@Param("note")String note);//接口
<select id="findA" resultMap="roleMap">
SELECT
id,role_name,note FROM t_role
WHERE role_name like concat
('%',#{roleName},'%')
and note like concat('%',#{note},'%')
</select>
第三种JavaBean
<select id="findA" parametertype="com.learn.params.RoleParam" resultMap="roleMap">
SELECT
id,role_name,note FROM t_role
WHERE role_name like concat
('%',#{roleName},'%')
and note like concat('%',#{note},'%')
</select>
public List<Role> findA(RoleParam roleParam);//接口
public class RoleParam {
private String roleName;
private String note;
public String getRoleName() {
return roleName;
}
public String getNote() {
return note;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public void setNote(String note) {
this.note = note;
}
}
总结:
第一种导致业务可读性的丧失
第二种是最佳的传递参数方式当n《=5
当传递参数》5时建议使用JavaBean