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

起因
今天在请求数据库数据时报错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返回值类型有问题导致的,当然可能也有其他原因造成的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值