Invalid bound statement (not found),对应mapper的某个方法(getUserInfo)未找到

转载转载转载:https://www.cnblogs.com/ewwwe/p/6181872.html

在mapper代理的开发中,程序员需要遵守一些规范,mybatis才能实现mapper接口的代理对象。 
它的规范如下:

  • mapper.xml的namespace要写所映射接口的全称类名。
  • mapper.xml中的每个statement的id要和接口方法的方法名相同
  • mapper.xml中定义的每个sql的parameterType要和接口方法的形参类型相同
  • mapper.xml中定义的每个sql的resultType要和接口方法的返回值的类型相同
  • mapper.xml要和对应的mapper接口在同一个包下
  • mapper.xml的命名规范遵守: 接口名+Mapper.xml

如果以上检查完毕,项目都遵守了上述的规范,而且你的项目是Maven项目。但是运行程序还是会出现Mybatis invalid bound statement(not found)的问题,这个时候就需要修改pom.xml文件了。在pom.xml中添加如下的代码:

    
        
            
                src/main/java
                
                
                    **/*.xml
                
            
            
            
                src/main/resources
                
                    **/*.yml
                    **/*.properties
                    **/*.xml
                
            
        
    

这个连接里面讲的很全面,几乎 包含了所有要注意核对的点,请优先看这个链接。

对以上链接的补充:配置文件中 需要以下配置

mybatis:
  #com.chinacaring.jianhuoracleservice.dao.mapper
  mapper-locations: classpath:com/chinacaring/jianhuoracleservice/dao/mapper/**/*.xml

一、问题描述

项目使用多个模块构建,其中 B模块依赖于A模块,A模块中有mapper 和对应的xml用于查询数据。但是启动项目之后,报如下错误:Invalid bound statement (not found): com.chinacaring.user.dao.mapper.UserMapper.getUserInfo

开始以为 没有加上mapperscan 未扫描对应的mapper,后来加上后还是同样的问题。

二、原因和解决方法

原因在于 和mapper相互绑定的 .xml文件不是代码,无需编译,但是需要指定在编译时 将 指定的资源文件(此处为 .xml文件)拷贝到对应目录下(此处应当为 编译好之后 类文件的对应目录)

在 pom中加入:


        
            
                src/main/java
                
                    **/*.xml
                
            
          
    

指定将 src/main/java目录下 匹配 **/*.xml格式的 文件 拷贝到 编译后的类文件相同目录下

不加之前 target的结构

Invalid bound statement (not found),对应mapper的某个方法(getUserInfo)未找到_第1张图片

加了拷贝资源的build之后

Invalid bound statement (not found),对应mapper的某个方法(getUserInfo)未找到_第2张图片

可见 指定的xml资源文件被 拷贝进来了,这样,再次运行 就可以找到mapper所绑定xml文件,并执行相应的操作了

最后贴一下项目完整的POM文件结构:



    
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.16.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8

        1.0.4
        2.1-gamma
    

    

    

    
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
        
            
                src/main/java
                
                    **/*.xml
                
            
            
                src/main/resources
                
                    **/*.xml
                    **/*.yml
                    **/*.properties
                
            
        
    



 

你可能感兴趣的:(spring,boot,maven,mybatis)