配置文件出錯 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):


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

<!-- mybatis 配置--> <!--spring和mybatis完美結合,不需要mybatis配置映射文件--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!--mapperLocations:它表示我們的Mapper文件存放的位置, 當我們的Mapper文件跟對應的Mapper接口處於同一位置的時候可以不用指定該屬性的值。 mapper文件就是xml文件--> <!--自動掃描mapper.xml文件--> <property name="mapperLocations"> <array> <value>classpath:mapper/country/*.xml</value> <value>classpath:mapper/order/*.xml</value> <value>classpath:mapper/product/*.xml</value> <value>classpath:mapper/user/*.xml</value> <value>classpath:mapper/BrandDao.xml</value> </array> </property> <!--這個可以實現上面一樣的功能--> <!-- <property name="mapperLocations" value="classpath*:mapper/**/*.xml"/>--> <!--這個query 一定研究一下 用處好大啊!!--> <property name="typeAliasesPackage" value="cn.biye.core.bean,cn.biye.core.query"/> </bean> <!-- 掃包 --> <!-- DAO接口所在包名,Spring會自動查找其下的類 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--下面這個value可以有兩種寫法:1,精確到各個包下面,多個包用逗號隔開。 2,不精確到每個包下面,就只寫到各個包上面的包中,例如dao包下面還有包,則寫到dao就行了--> <property name="basePackage" value="cn.biye.core.dao.user, cn.biye.core.dao.product,cn.biye.core.dao.order,cn.biye.core.dao.country"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean>

在這一點上面經常報錯,可以肯定的是,把路徑都詳細指到位肯定是不會錯的,但因為我賴得寫全路徑,所以就報莫名其妙的500,還寫上一大堆參數未綁定,

無法注入bean也都是這個問題,,,最准確一點是報:在實現層找不到可以注入的dao   can not autowire. No beans of 'FeatureDao"   其實也是它。

 

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

關於maven構建spring+Mybatis工程運行錯誤:
org.apache.ibatis.binding.BindingException: Invalidbound statement (not found):
在網上找了一些帖子和博文,發現可能是在打包時沒有打包mapper.xml文件。最后到target下看,果然在對於的package下沒有mapper.xml文件。
針對idea下沒有打包package下的mapper.xml的解決方法:
在maven的pom.xml文件的<build>節點下告訴maven我們需要打包的文件:


最后可以在target下看看是否我們編寫的mapper.xml文件被打包沒有。
總結一下org.apache.ibatis.binding.BindingException: Invalidbound statement (not found):的大多數原因:
1.        先檢查自己的mapper.xml文檔是否在Mybatis的配置文件中是否加載了。
2.        查看mapper.xml文件中namespace的命名空間是否和接口的類的全名稱相同
3.        查看mapper.xml文件中sql語句的id名稱是否和接口中的方法名稱一致。
4.        Sql語句中的參數和返回類型和接口中的參數和返回值類型相同
5.        最后查看生成的target中是否有對於的mapper.xml文件(如果上面都檢查沒有問題,那一般就是mapper.xml文件沒有打包到target中)解決方法:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM