Mybatis中,返回一个多条数据(List)时,resultType的值指定的不是List,而是List中的元素类型

2023年5月21日10:08:26

1、MyBatis在xml中<select>标签不写接收参数parameterType 和 返回结果类型resultType会报异常。

2、当返回多条一个结果时,并不是在resultType中写成List类型。如下图的错误xml中配置:

<select id="getUniqueAgencyCity" resultType="java.util.List">
		SELECT
			AgencyCity 
		FROM
			agency_product 
		WHERE
			ID IN ( SELECT DISTINCT SelectIDs FROM agency_information WHERE State = 0 )

</select>

对应Mapper接口如下:

public List<String> getUniqueAgencyCity();

3、正确的写法如下,resultType是集合中的元素的类型,并不是集合本身。

<select id="getUniqueAgencyCity" resultType="String">
		SELECT
			AgencyCity 
		FROM
			agency_product 
		WHERE
			ID IN ( SELECT DISTINCT SelectIDs FROM agency_information WHERE State = 0 )

</select>

 

4、如果不注意写错了,出现的异常大概是:

Cause: java.lang.UnsupportedOperationException
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)

  • 作者:mskymt
  • 原文链接:https://blog.csdn.net/mskymt/article/details/86497472
    更新时间:2023年5月21日10:08:26 ,共 878 字。