Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value
##java
將Eclipse上的Spring+MyBatis項目導入到IDEA上來,出現這種錯誤,按理說是怎麼都不會有這個錯誤的,由於在eclipse上是能夠跑的。
Type Exception Report Message Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for njupt.mapper.StudentMapper.selectByStuId ### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for njupt.mapper.StudentMapper.selectByStuId org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:980) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:859) javax.servlet.http.HttpServlet.service(HttpServlet.java:635) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
錯誤緣由是在IDEA中不會將Sources下的XML文件發佈
能夠看到target文件夾中開始沒有咱們的StudentMapper.xml文件
web
解決方法
把xml直接拖到resourse,運行!可是這個方法 ,其實破壞了包結構。spring
嘗試新的方法:不須要移動mapper.xml,推薦在pom文件中找到apache
<build></build>
在其中添加如下幾行,用於掃描到xml文件。
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>