mybatis常见报错!!

在写好代码的时候,编译正常但是在调用接口的时候却报 Invalid bound statement (not found):错误,这个错误有以下几种可能
    1.检查xml文件所在package名称是否和Mapper interface所在的包名

        <mapper namespace="me.tspace.pm.dao.UserDao">
         mapper的namespace写的不对!!!注意系修改。

    2.UserDao的方法在UserDao.xml中没有,然后执行UserDao的方法会报此

    3. UserDao的方法返回值是List<User>,而select元素没有正确配置ResultMap,或者只配置ResultType!

    4. 如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决

    5.看下mapper的XML配置路径是否正确

重点来了!!!
        当以上几种可能都正确的情况下,看一看编译器的target目录下编译好的的class文件,看一看mapper(按照自己起的名字找)文件夹下是否有xxxmapper.XMl文件加载进来
    在以上五种情况都满足的情况下应该就是这个问题了(IDE不加载.XML文件)

解决办法:
        在你IDE的pom文件中添加以下代码:
        <build>
                <resources>
                    <!-- mapper.xml文件在java目录下 -->
                    <resource>
                        <directory>src/main/java</directory>
                        <includes>
                            <include>**/*.xml</include>
                        </includes>
                    </resource>
                    <!-- mapper.xml文件在resources目录下-->
                    <resource>
                    <directory>src/main/resources</directory>
                </resource>
                </resources>
    </build>
这时找到maven依赖将下面代码放进build节点中(如果pom文件中有build节点就可以省去build节点)

猜你喜欢

转载自www.cnblogs.com/liyh123456/p/10437159.html