mybatis invalid bound statement (not found) 当心文件确实不存在

前言:本人在将不适用maven的项目转化为maven项目后,遇到了 invalid bound statement (not found),百思不得其解,因为此前是可以运行的,而转为maven项目后,可以正常执行maven clean install 命令打包发布。但是访问具体某个controller后就会报出  invalid bound statement (not found)。

解决过程:

一、先试了确定常见的几个易错点没错(网上到处都有的):

1.mapper.xml 文件里的namespace对应这mapper.java 的class类型名

 



com.surpass.logistics.car.dao.CarTypeMapper" >
  
    
    
    
    
    
    
    
  

package com.surpass.logistics.car.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.surpass.logistics.car.domain.CarType;
import com.surpass.logistics.car.domain.CarTypeExample;

public interface CarTypeMapper {
....
}

2.自己引入的类型必须要对(点了可以跳转过去)

  com.surpass.logistics.car.domain.CarType" >
    
    
    
    
    
    
    
  
二、穷途末路,猜想引用路径的文件是否确实不存在(格外注意各种工具的打包特色)


		
		
		
于是到class文件夹下寻找
com/surpass/logistics/car/dao/CarTypeMapper.xml
发现src/main中的所有资源文件都没有被打包进来,查找相关资料发现maven是根据以下片段来打包资源的


        src/main/java
        src/test/java
        
            
                ${project.basedir}/src/main/resources
                true
            
        

发现资源文件的目录不包含src//main/java

于是改为


            
                ${project.basedir}/src/main/resources
                true
            
			
				src/main/java
				
					**/*.xml
				
			
        
错误消失。




你可能感兴趣的:(java)