MyBatis之java.lang.UnsupportedOperationException异常解决方案【学艺不精害死个人啊】

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

 

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

 

<select id="getColumnsByTableName" parameterType="String" resultType="Java.util.List">
      select t.column_name from user_tab_columns t where t.tableName=#{tableName,jdbcType=VARCHAR}
</select>

 

[html] view plain copy
 
 print?
  1.   

 


对应的dao接口代码为:

 

public List<String> getColumnsByTableName(String tableName);

 

应该改为:

 

<select id="getColumnsByTableName" parameterType="String" resultType="String">      select t.column_name from user_tab_columns t where t.tableName=#{tableName,jdbcType=VARCHAR}</select>

 

[html] view plain copy
 
 print?
  1.   


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

 

public List<String> getColumnsByTableName(String tableName);

给迷惑住了

 

 

切记:resultType返回的是集合中的元素类型,而不是集合本身

posted @ 2017-08-22 15:09  鱼笑笑  阅读(252)  评论(0编辑  收藏  举报