MyBatis中配置文件resultMap标签的使用

       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标签中将实体类字段与数据库字段一 一进行关联                映射。

猜你喜欢

转载自blog.csdn.net/MyBloggerlxs/article/details/80074625