- 如果只是返回一个值,比如说String或者int,那直接用resultType就行了
- 如果是返回一个Map,可以用 resultType="Map"
- 如果返回的是POJO类,二者都可以用,下面代码展示用法。 当数据库字段名与POJO类字段名不一致时,二者都可以用别名。
POJO:
@Data
public class Users {
private Long id;
private String userName;
private Integer sex;
}
ResultType:
<select id="getUsersType" resultType="Users">
select user_name userName, sex from t_users
</select>
ResultMap:
<resultMap id="userMap" type="Users">
<id property="id" column="id"/>
<result property="userName" column="user_name"/>
<result property="sex" column="sex"/>
</resultMap>
<select id="getUsersMap" resultMap="userMap">
select id, user_name, sex from t_users
</select>
<!-- property是实体类的字段名,column是数据库返回的字段名或别名。 -->
对于简单的映射,resultType和resultMap区别不大。但是resultMap功能更强大,可以提供级联查询,缓存等功能。