原因分析:
mapper层设计的抽象方法返回值类型出错。
范例:
多表查询且是多对多关系,意味着可以从一个表中,根据id查询出多条记录。
@Mapper
public interface AddressMapper {
/**
* 根据用户的id查询用户的收货地址信息
* @param uid 用户的id
* @return 返回一个地址实体类对象
*/
Address selectAddress(Integer uid);
}
测试类:
@Test
public void selectAddress(){
Address result =addressMapper.selectAddress(5);
System.out.println(result);
}
而以上,接口设计中返回值是Address对象,用来封装数据,但是这样并不符合逻辑。因为返回值是Address对象,只能封装一条数据,如果查询出来结果匹配的有多条记录,那么就会报以上错误。
解决:
将接口中返回值Address对象,修改成返回时是一个类型为Address对象的集合。
运行结果:
数据已获取到!!!