• 如果只是返回一个值,比如说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功能更强大,可以提供级联查询,缓存等功能。