本身挖的坑跪着也要填完---mapper配置文件和java源文件在同一包下

原本準備研究下mybatis源碼執行流程的,就隨意搭建了個項目,全部配置以下:java

 

 

一切看似都是那麼的正常,然而執行的時候:Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nijunyang.mybatis.mapper.UserMapper.insertUserapache

 

 1.發現org.apache.ibatis.session.Configuration#mappedStatements始終是空的,等於說mapper文件的類容根本沒有被加載解析session

 

 

2.org.apache.ibatis.builder.annotation.MapperAnnotationBuilder#loadXmlResource加載xml根本沒有加載到mybatis

3.文件路徑看似都是對的,可是卻加載不到文件流org.apache.ibatis.io.Resources#getResourceAsStream(java.lang.ClassLoader, java.lang.String)app

各類找問題,覺得是名字不對等等,從新寫各項配置,結果仍是不行。最後恍然大悟,這配置文件是用classloader加載的,遂檢查jar包(class目錄)發現mapper.xml文件根本沒有編譯進去,再看pom文件,資源文件的打包配置空空如也。ui

 

因此看似正常的xml文件路徑,實則並不正常,由於在jar/class裏面並無將配置文件打進去spa

 所以在源文件包裏面寫配置,pom文件必定要注意加上打包資源的配置3d

所以在源文件包裏面寫配置,pom文件必定要注意加上打包資源的配置xml

所以在源文件包裏面寫配置,pom文件必定要注意加上打包資源的配置
blog

默認的編譯只會將java源文件編譯出來的class文件打包走,而不會打包其餘文件,擼上<resources>節點萬事大吉

相關文章
相關標籤/搜索