Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value f

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/mygod2020/article/details/102728653

mybatis中的映射文件namespace,今天遇到了一个bug,其他的看了都没什么问题,只记得去查看全局映射文件mybatis-config.xml中的这个resource是否配置正确了,却没想起来去看映射文件本身的命名空间,这两个是一一对应的关系,一个不对,电脑也找不到啊,你要告诉电脑正确的信息

 <mappers>
    <mapper resource="UserDaoMapper.xml"/>
    </mappers>

但是独独提示Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for UserDaoMapper.deleteUserById
,namespace是全局配置文件能找到的唯一对应的字段,也是映射文件的唯一标识,所以这个一定要对应好啊,

<?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">
<!-- namespace(命名空间):映射文件的唯一标识 -->
<mapper namespace="UserMapper">
<!--一定要记住,要记住,和本文件的名字一致一致,是唯一标识,唯一标识-->
    <!-- 查询的statement,id:在同一个命名空间下的唯一标识,resultType:sql语句的结果集封装类型 -->
<!-- sql语句结尾要写;-->
<!-- resultType里面写的是User的copy reference-->
    <select id="queryUserById" resultType="cn.itcast.pojo.User">
		select * from tb_user where id=#{id};
	</select>

    <select id="queryUserAll" resultType="cn.itcast.pojo.User">
        select * from tb_user;
    </select>

    <insert id="insertUser" parameterType="cn.itcast.pojo.User">
        insert into tb_user(
         user_name,
         password,
         name,
         age,
         sex,
         birthday,
         created,
         updated
        )
        values(
        #{userName},
        #{password},
        #{name},
        #{age},
        #{sex},
        #{birthday},
        NOW(),
        NOW()
        );
    </insert>

    <update id="updateUser" parameterType="cn.itcast.pojo.User">
        update tb_user
        set
        user_name = #{userName},
        password = #{password},
        name = #{name},
        age = #{age},
        sex = #{sex},
        birthday = #{birthday},
        updated = NOW()
        where
           {id = #{id};
    </update>

    <delete id="deleteUserById" parameterType="java.lang.Long">
        delete from tb_user where id = #{id}
    </delete>

猜你喜欢

转载自blog.csdn.net/mygod2020/article/details/102728653