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

版权声明:开放学习,交流共享,笔记之地。 https://blog.csdn.net/itwxming/article/details/88668610

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

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

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

<select id="queryFilePath" parameterType="java.util.List" resultType="java.util.List">
   SELECT
   FILE_PATH AS filePath
   FROM
   admin_file_upload_info
   WHERE FILE_ID IN
   <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
      #{item,jdbcType=VARCHAR}
   </foreach>
</select>

对应的dao接口代码为:

List<String> queryFilePath(String[] array);

应该改为:

<select id="queryFilePath" parameterType="java.util.List" resultType="String">
   SELECT
   FILE_PATH AS filePath
   FROM
   admin_file_upload_info
   WHERE FILE_ID IN
   <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
      #{item,jdbcType=VARCHAR}
   </foreach>
</select>

原因就在于resultType代表的是List中的元素类型,而不应该是List本身,究其原因在于被dao中的方法声明(标红部分)public List<String> getColumnsByTableName(String tableName);给迷惑住了。

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

猜你喜欢

转载自blog.csdn.net/itwxming/article/details/88668610