bulidfer 2019-03-04 17:20 采纳率: 0%
浏览 350
已采纳

mybatis 修改关联表报错

软件环境

spring springmvc mybatis

数据库:mysql

报错信息:
mybatis 修改关联表报错Parameter 'key_dm' not found. Available parameters are [0, member, param1, param2]
图片说明

代码提示:

//mybatis.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.app.dao.mapper.MemberPermissionMapper">
    <resultMap type="MemberPermission" id="MemberPermission">
        <id column="id" property="id"/>
        <result column="member_id" property="member_id"/>
        <result column="ttys" property="ttys"/>
        <result column="key_dm" property="key_dm"/>
        <result column="lose_time" property="lose_time"/>
        <result column="note" property="note"/>
        <result column="update_time" property="update_time"/>
        <!-- 关联member表 -->
        <association property="member" javaType="com.app.bean.Member">
            <id column="member_id" property="id"/>
            <result column="phone" property="phone"/>
            <result column="name" property="name"/>
            <result column="password" property="password"/>
        </association>
    </resultMap>

    <update id="updateMemberLoginPermission" parameterType="MemberPermission">
        UPDATE dt_member_permission AS t1
        LEFT JOIN dt_member AS t2 ON t1.member_id=t2.id
        <set>
            <if test="key_dm!=null and key_dm !=''">t1.key_dm=#{_key_dm},
            </if>
        </set>
        WHERE t1.ttys=#{ttys}
        AND t2.phone=#{phone}
        AND t2.password=#{password}
    </update>

//service业务层实现类代码

   @Override
    public int updateMemberLoginPermission( @Param("ttys") String ttys, @Param("phone") String phone, @Param("newpwd") String newpwd, @Param("key_dm") String key_dm) {

       MemberPermission memberPermission= new MemberPermission();
        memberPermission.setTtys(ttys);
        memberPermission.setKey_dm(key_dm);

        Member member = new Member();
        member.setPhone(phone);
        member.setPassword(newpwd);
        return memberPermissionDao.updateMemberLoginPermission(memberPermission,member);
    }

//dao层代码

public interface MemberPermissionDao {


    public int updateMemberLoginPermission(MemberPermission memberPermission, @Param("member") Member member);//根据终端类型 用户手机号密码修改动态key 关联表
}

//mapper.java接口代码

package com.app.dao.mapper;

import com.app.bean.Member;
import com.app.bean.MemberPermission;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MemberPermissionMapper {

    public int updateMemberLoginPermission(MemberPermission memberPermission, @Param("member")Member member);//根据终端类型 用户手机号密码修改动态key 关联表
}

  • 写回答

2条回答 默认 最新

  • ThompJie 2019-03-05 11:25
    关注

    你别用实体类传参,使用map。
    Map map = new HashMap();
    map.put("ttys",ttys);
    map.put("phone",phone);
    map.put("key_dm",key_dm);
    map.put("password",password);
    xml中的update语句修改成:

    UPDATE dt_member_permission AS t1
    LEFT JOIN dt_member AS t2 ON t1.member_id=t2.id

    t1.key_dm=#{key_dm}


    WHERE t1.ttys=#{ttys}
    AND t2.phone=#{phone}
    AND t2.password=#{password}

    肯定就行了!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机