Java 中的MyBatis之java.lang.UnsupportedOperationException异常解决方案

这个异常放在mybatis xml 上,就是返回类型没有对应上

今天在使用MyBatis执行sql语句时,出现如下异常:

执行的sql语句配置信息如下:

<select id="getNameByCodition" parameterType="String" resultType="Java.util.List">
   select t.product_name from product_info t where t.product_name=#{productName,jdbcType=VARCHAR}
</select>

对应的数据库访问层Dao接口代码为:

public List<String> getNameByCodition(String productName);

应该改为:

<select id="getNameByCodition" parameterType="String" resultType="String">      
  select t.product_name from product_info t where t.product_info=#{productName,jdbcType=VARCHAR}
</select>

原因就在于resultType代表的是List中的元素类型,而不应该是List本身,究其原因就在于被dao中的方法声明(标记出来的)

public List<String>getNameByCodition(String productName);

其实这个问题在开发中,很多时候会遇到,注意就好了,查询单个值,返回list String集合时, 是要关注返回list的泛型类型!

这里是String, 这里的结果类型就是String, 而不是List!

这个也比较好理解,你若是返回不是单个值集合,而是对象的集合,那这里也应该是写成具体对象的类!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值