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即可解决。