mybatis实体类的映射关系

1949idc 2年前 (2024-09-19) 阅读数 303 #编程语言

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在 MyBatis 中,实体类和数据库表之间的映射关系是通过 XML 配置文件或注解来实现的。

  1. 使用 XML 配置文件:

首先,创建一个实体类,例如 User:

public class User {
    private int id;
    private String name;
    private String email;

    // 省略 getter 和 setter 方法
}

然后,创建一个名为 UserMapper.xml 的 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="com.example.dao.UserMapper">
   <resultMap id="UserResultMap" type="com.example.entity.User">
        <id property="id" column="id"/>
       <result property="name" column="name"/>
       <result property="email" column="email"/>
    </resultMap>

   <select id="getUserById" resultMap="UserResultMap">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>

在上面的示例中,我们定义了一个名为 UserResultMap 的 resultMap,它将 User 实体类的属性映射到数据库表的列。然后,我们定义了一个名为 getUserById 的查询方法,它使用 UserResultMap 作为结果映射。

  1. 使用注解:

在实体类上添加 MyBatis 的注解,例如:

import org.apache.ibatis.type.Alias;

@Alias("user")
public class User {
    private int id;
    private String name;
    private String email;

    // 省略 getter 和 setter 方法
}

然后,在对应的 Mapper 接口上添加注解,例如:

import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Id;

public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    @Results({ @Result(id = true, column = "id", property = "id"), @Result(column = "name", property = "name"), @Result(column = "email", property = "email") })
    User getUserById(int id);
}

在上面的示例中,我们使用了 @Select 注解来定义 SQL 查询语句,并使用 @Results 和 @Result 注解来定义实体类和数据库表之间的映射关系。

总之,MyBatis 提供了灵活的方式来定义实体类和数据库表之间的映射关系,可以根据项目需求选择合适的方式。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业