MyBatis使用动态代理报 invalid bound statement (not found) 错

这个问题网上大部分都说xml文件中的路径不对 或者是resources之类的问题,如果那些文章的解决方案解决不了你的问题的话,可以看一下我遇到的这种情况:

前提:

mybatis-config.xml内 映射器用的是这种方式:

    <mappers>
        <!--如果只需要管理一个mapper 可以直接写如下方式 并且其物理路径不需要与其xml文件路径相同-->
        <!--<mapper resource="UserMapper.xml"></mapper>-->
        <!--我们如果需要统一管理所有的mapper xml 用这种方式 但是这种方式需要文件夹路径和其xml文件的name路径一致-->
        <package name="com.zy.mapper" />
    </mappers>

使用这种方式需要Mapper xml文件所在的物理路径要和其文件内的namespace值一致:

<mapper namespace="com.zy.mapper.UserMapper">
    <select id="getUserById"  parameterType="int" resultType="User">
        select * from users where id=#{id}
    </select>
</mapper>

Mapper Interface和 Mapper xml 的路径一致  但是Mapper xml所在的文件夹应为一个package而不是普通的文件夹,如果你创建的时候是创建的普通文件夹,把这个文件夹改为package即可解决。

猜你喜欢

转载自www.cnblogs.com/Alex-zqzy/p/9286371.html