MyBatis 实体映射


Mybatis 配置数据映射主要有 2 种方式,通过 XML 配置文件进行,通过注解进行;

Mybatis 对于实体映射是通过接口调用的方式,在底层上使用 Java 的动态代理实现,不需要提供接口的实现类;

基于 XML 的映射


以下示例完整示例代码地址:https://gitee.com/assad/mybatis-test-CRUD

代码模块:

site.assad.domain.User (POJO 类)

site.assad.dao.UserDao (Dao 接口)

site.assad.UserDaoTest(UserDao 测试)

mapper/UserMapper.xml (User 实体映射配置文件)

mybatis-config.xml (mybatis 配置文件)

实体类,dao接口 和 映射XML文件的编写

假如要数据表映射的实体类为 site.assad.model.User

public class User implements Serializable{
    private int id;
    private String name;
    private String password;
    private Date createDate;
    //省略 getter,setter
}

那么编写一个对应的映射配置文件 mapper/UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "<http://mybatis.org/dtd/mybatis-3-mapper.dtd>">

<!--设置映射的命名空间-->
<mapper namespace="site.assad.dao.UserDao">

    <!--结果映射规则-->
    <resultMap id="userMap" type="site.assad.domain.User">
        <id property="id" column="user_id" />
        <result property="name" column="user_name" />
        <result property="password" column="user_password" />
        <result property="createDate" column="create_date" jdbcType="DATE" javaType="java.util.Date"/>
    </resultMap>

    <!--定义接口方法-->
    <select id="selectAll" resultMap="userMap">
        SELECT user_id,user_name,user_password,create_date FROM users
    </select>

</mapper>

<resultMap> 包含以下常用属性:

id:必填,而且唯一,指定该结果集映射规则的标识符;