mybatis执行update之后返回不支持的类型

老英雄9 开发工程师  2017-11-08 12:05:20
严重: Servlet.service() for servlet SpringMVC threw exception
org.apache.ibatis.binding.BindingException: Mapper method 'com.bdqn.dao.AccountMapper.update' has an unsupported return type: class java.lang.Object
at org.apache.ibatis.binding.MapperMethod.rowCountResult(MapperMethod.java:91)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:54)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
at com.sun.proxy.$Proxy27.update(Unknown Source)
at com.bdqn.service.AccountServiceImpl.update(AccountServiceImpl.java:21)
at com.bdqn.controller.AccountController.quQian(AccountController.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
这是映射文件中的更新语句
<update id="update" parameterType="Account">
update account set account_Money = #{accountMoney},account_Time=#{accountTime} where id = #{id}
</update>

...全文
529 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
初尘19 2017-11-13
update返回的是一个整型变量,表示的是更新的行数
  • 打赏
  • 举报
回复
Cathy313 2017-11-13
你mapper代理的接口中Object改成Integer就可以了,mybatis中update默认返回的是一个整型变量
  • 打赏
  • 举报
回复 1
HauserSzh 2017-11-13
1.你可以直接用List或者List<Object[]>接收 2.如果只是一条数据,你又想用String接收:用List<String>接收返回值,然后返回List.get(0),这样返回的就是String类型
  • 打赏
  • 举报
回复 1
Johnhjy 2017-11-11
不用resulttype不用写,select语句才写result相关的,直接返回一个实体对象试一下,没配置别名就写实体类的全路径
  • 打赏
  • 举报
回复
你要配置resultType
  • 打赏
  • 举报
回复
Sunyiban 2017-11-08
引用 2 楼 u011555974 的回复:
对,mapper代理中的接口方法我返回的是Object
更新只会返回一个数字你为啥要写OBJECT接受 int 就行了
  • 打赏
  • 举报
回复
老英雄9 2017-11-08
对,mapper代理中的接口方法我返回的是Object
  • 打赏
  • 举报
回复
月似人伤 2017-11-08
应该返回的是Int类型 但是你可能返回了String类型
  • 打赏
  • 举报
回复 1
相关推荐
发帖
Java EE
加入

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2017-11-08 12:05
社区公告
暂无公告