出现以下问题,解决的方式为,
问题的原因:UserMapper中用了parameterMap
解决方式:把 映射文件中的parameterMap换为parameterType
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map com.hzit.dao.UserDao.UserResultMap
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
root cause
org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map com.hzit.dao.UserDao.UserResultMap
org.apache.ibatis.builder.MapperBuilderAssistant.getStatementParameterMap(MapperBuilderAssistant.java:320)
org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:296)
org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)
org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:760)
org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:730)
org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:725)
org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:210)
org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48)
org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59)
org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
com.sun.proxy.$Proxy23.getById(Unknown Source)
com.hzit.service.UserService.login(UserService.java:19)
com.hzit.controller.UserController.login(UserController.java:22)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
root cause
java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.hzit.dao.UserDao.UserResultMap
org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:860)
org.apache.ibatis.session.Configuration.getParameterMap(Configuration.java:632)
org.apache.ibatis.builder.MapperBuilderAssistant.getStatementParameterMap(MapperBuilderAssistant.java:318)
org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:296)
org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)
org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:760)
org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:730)
org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:725)
org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:210)
org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48)
org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59)
org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
com.sun.proxy.$Proxy23.getById(Unknown Source)
com.hzit.service.UserService.login(UserService.java:19)
com.hzit.controller.UserController.login(UserController.java:22)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
修改后的UserMapper
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzit.dao.UserDao">
<resultMap type="com.hzit.entity.User" id="UserResultMap">
<id column="loginname" jdbcType="VARCHAR" property="loginname1"/>
<result column="staffname" jdbcType="VARCHAR" property="staffname1"/>
<result column="passwords" jdbcType="VARCHAR" property="passwords1"/>
<result column="sex" jdbcType="VARCHAR" property="sex1"/>
<result column="age" jdbcType="INTEGER" property="age1"/>
<result column="phonenumber" jdbcType="VARCHAR" property="phonenumber1"/>
<result column="isstaff" jdbcType="INTEGER" property="isstaff1"/>
<result column="ismanager" jdbcType="INTEGER" property="ismanager1"/>
<result column="birthday" jdbcType="VARCHAR" property="birthday1"/>
<result column="adress" jdbcType="VARCHAR" property="adress1"/>
</resultMap>
<select id="getAll" resultMap="UserResultMap">
select * from staff
</select>
<select id="getByName" resultMap="UserResultMap" parameterType="String">
select * from staff where loginname like #{name};
</select>
<select id="getById" resultMap="UserResultMap" parameterType="String">
select * from staff where loginname=#{name};
</select>
<insert id="insert" parameterType="com.hzit.entity.User" >
INSERT INTO staff (staffname, loginname, passwords, sex, age, phonenumber, isstaff, ismanager, birthday, adress)
VALUES(#{staffname}, #{loginname}, #{passwords}, #{sex}, #{age}, #{phonenumber}, #{isstaff}, #{ismanager}, #{birthday}, #{adress})
</insert>
<delete id="delete">
delete from staff where loginname=#{id};
</delete>
<update id="update" parameterType="com.hzit.entity.User">
update staff
<set>
<if test="user.staffname1 != null">
staffname=#{user.staffname1}
</if>
<if test="user.loginname1 != null">
loginname=#{user.loginname1}
</if>
<if test="user.passwords1 != null">
passwords=#{user.passwords1}
</if>
<if test="user.sex1 != null">
sex=#{user.sex1}
</if>
<if test="user.age1 != null">
age=#{user.age1}
</if>
<if test="user.phonenumber1 != null">
phonenumber=#{user.phonenumber1}
</if>
<if test="user.isstaff1 != null">
isstaff=#{user.isstaff1}
</if>
<if test="user.ismanager1 != null">
ismanager=#{user.ismanager1}
</if>
<if test="user.birthday1 != null">
birthday=#{user.birthday1}
</if>
<if test="user.adress1 != null">
adress=#{user.adress1}
</if>
</set>
</update>
</mapper>