Mybatis 配置数据映射主要有 2 种方式,通过 XML 配置文件进行,通过注解进行;
Mybatis 对于实体映射是通过接口调用的方式,在底层上使用 Java 的动态代理实现,不需要提供接口的实现类;
以下示例完整示例代码地址: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 配置文件)
假如要数据表映射的实体类为 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:必填,而且唯一,指定该结果集映射规则的标识符;