不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2018-06-10 01:29:49  修改时间:2024-04-28 23:41:39  分类:Java基础  编辑

【常规解决办法】

如果出现:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误

按以下步骤一一执行:

1、检查xml文件所在的package名称是否和interface对应的package名称一一对应;

2、检查xml文件的namespace是否和xml文件的package名称一一对应(即引用xml文件所需的package名称);

3、检查函数名称能否对应上;

【我遇到的问题】

本地无问题,发布到服务器就无法登录。

错误日志:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

【出错原因】

使用maven命令tomcat7:deploy远程自动部署项目打成的war包,里面缺少Mapper对应的xml文件,也就是没有把xml文件打包进去。

【解决方案】

在pom.xml文件中的build标签中添加如下代码,显示地强制将xml文件打到war包中

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <build>       
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include> <!-- 此配置不可缺,否则mybatis的Mapper.xml将会丢失 -->
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
</project> 

 

 

参考:

http://www.cnblogs.com/jary0524/p/5523902.html

https://www.jianshu.com/p/800fe918cc7a