碰到MyBatis无法识别到前端传的值

 如果碰到了无法识辨报错是【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>

这种方法呢也就是写map集合然后impl使用Mapper方法后会自动识别到符合字段中,注意“token”引号中的token是你sql里面条件占位符的字段哦要一摸一样哦,我是因为@Param即使方法中添加上,sql中也把占位符替换为#{pram1}也无法识别,才写的map,如果有人写上@Param也不行的话可以试一下我的方法。

当然,我只是个菜鸟,比不上各位人杰地灵,采纳就采纳,不采纳您可以另寻他法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值