Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.baosight.webapp.sqlmap.addPro
MyBatis 根據 `
package com.baosight.webapp.dao;
public interface UserMapper {
void addPro(User user);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.baosight.webapp.dao.UserMapper"> <!-- 必須與接口全限定名完全一致 -->
<insert id="addPro" parameterType="com.baosight.webapp.entity.User">
INSERT INTO t_user (name, age) VALUES (#{name}, #{age})
</insert>
</mapper>
<!-- 掃描mapper XML文件 -->
<mappers>
<package name="com.baosight.webapp.dao"/>
</mappers>
<!-- 或 Spring集成 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.baosight.webapp.dao"/>
</bean>
Namespace = Mapper接口全限定名,這是MyBatis映射註冊的核心約定。任何拼寫錯誤、包名變更未同步、XML未被掃描,都會導致「Mapped Statements collection does not contain value」錯誤。