IDEA: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value

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

解決方法

  1. 把xml直接拖到resourse,運行!可是這個方法 ,其實破壞了包結構。spring

  2. 嘗試新的方法:不須要移動mapper.xml,推薦在pom文件中找到apache

<build></build>
在其中添加如下幾行,用於掃描到xml文件。
<resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
</resources>

解決方法來自https://blog.csdn.net/tiancaijunm/article/details/70571134

相關文章
相關標籤/搜索