mybatis报错java.lang.UnsupportedOperationException原因及处理方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28483283/article/details/80696292

起因

今天在请求数据库数据时报错java.lang.UnsupportedOperationException,从字面上理解错误的含义就是不支持的操作异常,后面定位到错误发生在数据库sql语句中,具体原因就是resultType="java.util.List"有问题。返回的结果是一个List类型的集合,所有我用了这个resultType,但是不对的。需要使用string。

解释

下面是我百度出来,别人总结的resultType可用类型
resultType:
1、基本类型 :resultType=基本类型
2、List类型: resultType=List中元素的类型
3、Map类型 单条记录:resultType =map
多条记录:resultType =Map中value的类型
1、如果返回值为基本类型,则resultType=基本类型,比如resultType=java.lang.Integer,那sql语句中只返回一个int类型数据,通常用于统计数量
2、如果返回值为list类型,则resultType=List中元素的类型,比如你需要返回一个List类型的数据,那么这里resultType=”java.lang.String”,如果需要返回一个实体类,那么resultType=”com.pjf.mybatis.car”以此类推。
3、如果返回值为map单条类型,比如{username=”张三”},那么resultType =”map”。
4、如果返回值为map多条记录,比如{res=”实体类”},实体类就是你要请求的数据实体类,那么resultType =Map中value的类型,比如resultType=”com.pjf.mybatis.car”

返回多条记录的map时,key为任意一属性,值为对象类型,不过key需要通过@MapKey(“hotelName”)指定对象中一个属性名为key

`public interface HotelMapper {
    @MapKey("hotelName")
    public Map<String, Hotel> getHotel(Integer i);
}`

所以错误java.lang.UnsupportedOperationException主要是因为xml返回值类型有问题导致的,当然可能也有其他原因造成的。

java.lang.UnsupportedOperationException报错

10-03

2010-10-3 17:05:34 org.apache.catalina.core.StandardHostValve customrn严重: Exception Processing ErrorPage[errorCode=404, location=/error/404.jsf]rnjava.lang.UnsupportedOperationExceptionrn at javax.faces.context.FacesContext.getELContext(FacesContext.java:137)rn at javax.faces.component.UIViewRoot.setLocale(UIViewRoot.java:888)rn at org.apache.myfaces.application.jsp.JspViewHandlerImpl.createView(JspViewHandlerImpl.java:121)rn at org.ajax4jsf.application.ViewHandlerWrapper.createView(ViewHandlerWrapper.java:84)rn at org.ajax4jsf.application.AjaxViewHandler.createView(AjaxViewHandler.java:91)rn at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.createView(ViewHandlerImpl.java:124)rn at org.ajax4jsf.application.ViewHandlerWrapper.createView(ViewHandlerWrapper.java:84)rn at org.ajax4jsf.application.AjaxViewHandler.createView(AjaxViewHandler.java:91)rn at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:83)rn at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)rn at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)rn at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)rn at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)rn at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)rn at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)rn at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:424)rn at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:343)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:144)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)rn at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)rn at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)rn at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)rn at java.lang.Thread.run(Unknown Source)

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭