如果碰到了无法识辨报错是【arg1 arg0,pram1 pram0】(具体的报错我也忘了,反正是就这种识别不了传的值) 的话可以使用这种办法
一,Service
UserAddressDto selectAddress(String token,Long id);
二,ServiceImpl
@Override
public UserAddressDto selectAddress(String token, Long id) {
Map<String, Object> params = new HashMap<>();
params.put("token", token);
params.put("id", id);
return userAddressMapper.selectAddress(params);
}
三,Mapper
UserAddressDto selectAddress(Map<String, Object> params);
四,Mapper.xml
<select id="selectAddress" resultMap="UserAddressDtoResult">
SELECT
p.name AS province_name,
c.name AS city_name,
d.name AS district_name,
ua.city_id,
ua.contact,
ua.address,
ua.id,
ua.district_id,
ua.is_default,
ua.province_id,
ua.telephone
FROM
ls_user_address AS ua
JOIN
ls_dev_region AS p ON ua.province_id = p.id
JOIN
ls_dev_region AS c ON ua.city_id = c.id
JOIN
ls_dev_region AS d ON ua.district_id = d.id
LEFT JOIN ls_user r ON ua.user_id = r.id
WHERE
r.token = #{token}
<if test="id != null and id != ''">
AND ua.id = #{id}
</if>
</select>