resultMap标签的作用:是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与数据库表中的字段进行关联映射。
例如:
1.实体类代码
public class Test { private int id; private String parentId; private String name; private String enName; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getParentId() { return parentId; } public void setParentId(String parentId) { this.parentId = parentId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEnName() { return enName; } public void setEnName(String enName) { this.enName = enName; } }
当查询的数据表字段和实体类字段名一致时:
create table test1( id int(5) primary key, parentId int(5), name varchar(10), enName varchar(10) )
在配置文件中使用:
<resultMap type="com.test" id="testResultMap"> </resultMap>
<select id="selectList" resultMap="testResultMap">
select * from test1
</select>
查询的数据表字段和实体类字段名不一致时:
create table test2( id int(5) primary key, parent_id int(5), name varchar(10), en_name varchar(10) )
在配置文件中的配置为:
<!-- type指向你的javabean类,id可以自定义 --> <resultMap type="Category" id="category"> <!-- property对应实体类的属性名称,column为数据库结果集的列的名称 --> <id property="id" column="id" /> <result property="parentId" column="parent_id" jdbcType="INTEGER"/> <result property="name" column="name" jdbcType="VARCHAR"/> <result property="enName" column="en_name" jdbcType="VARCHAR"/> </resultMap> <select id="selectList" resultMap="testResultMap"> select * from test2 </select>
注意: 当实体类中的字段与数据库表中的字段相同时,可以将resultMap标签中的关联关系 忽略不写。
当实体类中的字段与数据库表中的字段不相同时,就需要在resultMap标签中将实体类字段与数据库字段一 一进行关联 映射。