Parameter Maps collection does not contain value for com.wcx.mapper.*.Map

今天在写一个项目,我使用spring来实现用户登录操作,应该调用的是ManagerMapper.xml中 id为managerLogin的SQL语句,我也在Biz层中输出了传递到后台的值与调用相关XML中的地址(红体字是我测试输出的数据),它是应该去找ManagerMapper.xml但是一直报错是TemplateMapper.map。网上也找了好多答案,一直没有解决,目光一直放在ManagerMapper.xml中,后来仔细检查了TemplateMapper.xml,才发现这个XML中有问题,所以在页面中我进行登录操作这里才报错,之前写好的一些正常功能再去测试也全部都报一样的错误,因为有干扰,以为是相关功能写错了,其实只是新增的这个xml文件出了问题。


测试输出结果:

{wcxmname=jjf, wcxmpwd=0425}

com.wcx.mapper.ManagerMapper.managerLogin


报错提示:

三月 24, 2018 10:24:14 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [DispatcherServlet] in context with path [/wcx] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.IncompleteElementException:Could not find parameter map com.wcx.mapper.TemplateMapper.Map] with root cause
java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.wcx.mapper.TemplateMapper.Map
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:860)
at org.apache.ibatis.session.Configuration.getParameterMap(Configuration.java:632)
at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementParameterMap(MapperBuilderAssistant.java:318)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:296)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)
at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:760)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:691)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:686)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)
at com.sun.proxy.$Proxy57.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:167)
at com.wcx.dao.impl.BaseDaoImpl.find(BaseDaoImpl.java:46)
at com.wcx.biz.impl.WcxmanagerBizImpl.managerLogin(WcxmanagerBizImpl.java:35)
at com.wcx.controller.ManagerController.managerLogin(ManagerController.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)


修改之前:

<update id="updateTemplate" parameterMap="Map"> 
update wenchaxingtemplate set wcxtname=#{wcxtname} where wcxtid=#{wcxtid}; 

</update>

<select id="temfindByPage" parameterType="Map" resultType="Template">
select * from (select a.*,rownum rn from(select wcxtid,wcxtname from wenchaxingtemplate where status!=0) a
              where rownum&lt;=#{pageNo}*#{pageSize}) where rn&gt;(#{pageNo}-1)*#{pageSize} 

</select>


修改之后:

<update id="updateTemplate" parameterType="Map"> 
update wenchaxingtemplate set wcxtname=#{wcxtname} where wcxtid=#{wcxtid}; 
</update>

<select id="temfindByPage" parameterType="Map" resultType="Template">
select * from (select a.*,rownum rn from(select wcxtid,wcxtname from wenchaxingtemplate where status!=0) a
              where rownum&lt;=#{pageNo}*#{pageSize}) where rn&gt;(#{pageNo}-1)*#{pageSize} 

</select>


查看Mybatis官方的资料,SQL映射的XML文件已经废弃了parameterMap,现在都是用parameterType来进行相关的操作!!!

这就解决了  Parameter Maps collection does not contain value for com.wcx.mapper.*.Map  这个问题,所以之前测试好的功能后来发现也执行不了,那就应该就是哪个xml文件有错误,还是要相信自己,血的教训,就这个问题看了两天,浪费了好多时间,以后一定会记得了。

猜你喜欢

转载自blog.csdn.net/jjboom425/article/details/79682880
今日推荐