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

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

mapper.xml的namespace要写所映射接口的全称类名。
mapper.xml中的每个statement的id要和接口方法的方法名相同
mapper.xml中定义的每个sql的parameterType要和接口方法的形参类型相同
mapper.xml中定义的每个sql的resultType要和接口方法的返回值的类型相同
mapper.xml要和对应的mapper接口在同一个包下(Java应用)

如果以上检查完毕,项目都遵守了上述的规范,而且你的项目是Maven项目。但是运行程序还是会出现Mybatis invalid bound statement(not found)的问题,这个时候就需要修改pom.xml文件了。
原因在于 和mapper相互绑定的 .xml文件不是代码,无需编译,但是需要指定在编译时 将 指定的资源文件(此处为 .xml文件)拷贝到对应目录下(此处应当为 编译好之后 类文件的对应目录)

在pom.xml中添加如下的代码:


        
            
                src/main/java
                
                    **/*.xml
                
            
          
    

也就是相当于SpringBoot的应用中的(如果是SpringBoot或者web项目就不用这么做)

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

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

你可能感兴趣的:(javaWeb与框架)