mybatis框架常出现的问题

出现以下问题,解决的方式为,

 

                        问题的原因: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>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值