1. 返回Map类型
适用于SQL查询返回的各个字段综合起来并不和任何一个现有的实体类对应,没法封装到实体类对象中。能够封装成实体类类型的,就不使用Map类型。
Mapper接口的抽象方法
Map<String,Object> selectEmpNameAndMaxSalary();
SQL语句
<select id="selectEmpNameAndMaxSalary" resultType="map">
SELECT
emp_name ,
emp_salary ,
(SELECT AVG(emp_salary) FROM t_emp)
FROM t_emp WHERE emp_salary=(
SELECT MAX(emp_salary) FROM t_emp
)
</select>
总结:
- resultType的值应该写map类的全类名或别名。
- map类型数据的传入与输出方式与实体类近似。
2. 返回List类型
查询结果返回多个实体类对象,希望把多个实体类对象放在List集合中返回。此时不需要任何特殊处理,在resultType属性中还是设置实体类类型即可。
Mapper接口中抽象方法
List<Employee> selectAll();
SQL语句
<!-- List<Employee> selectAll(); -->
<select id="selectAll" resultType="org.kkk.mybatis.entity.Employee">
select emp_id empId,emp_name empName,emp_salary empSalary
from t_emp
</select>
注意:
- 在接受list类型的数据时,resultType不要错填成list,要填列表中数据的类型。