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

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)