溫馨提示×

mybatis實體類的映射關(guān)系

小樊
83
2024-09-11 08:47:48
欄目: 編程語言

MyBatis 是一個優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。在 MyBatis 中,實體類和數(shù)據(jù)庫表之間的映射關(guān)系是通過 XML 配置文件或注解來實現(xiàn)的。

  1. 使用 XML 配置文件:

首先,創(chuàng)建一個實體類,例如 User:

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

    // 省略 getter 和 setter 方法
}

然后,創(chuàng)建一個名為 UserMapper.xml 的 XML 配置文件,定義實體類和數(shù)據(jù)庫表之間的映射關(guān)系:

<?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 實體類的屬性映射到數(shù)據(jù)庫表的列。然后,我們定義了一個名為 getUserById 的查詢方法,它使用 UserResultMap 作為結(jié)果映射。

  1. 使用注解:

在實體類上添加 MyBatis 的注解,例如:

import org.apache.ibatis.type.Alias;

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

    // 省略 getter 和 setter 方法
}

然后,在對應(yīng)的 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 注解來定義實體類和數(shù)據(jù)庫表之間的映射關(guān)系。

總之,MyBatis 提供了靈活的方式來定義實體類和數(shù)據(jù)庫表之間的映射關(guān)系,可以根據(jù)項目需求選擇合適的方式。

0