溫馨提示×

MyBatis中怎么實(shí)現(xiàn)一對一映射關(guān)系

小億
90
2024-03-07 15:51:30
欄目: 編程語言

在MyBatis中實(shí)現(xiàn)一對一映射關(guān)系可以通過在MyBatis的mapper文件中使用標(biāo)簽來定義映射關(guān)系。下面是一個示例:

  1. 創(chuàng)建兩個實(shí)體類,一個是主實(shí)體類,一個是關(guān)聯(lián)實(shí)體類。
public class MainEntity {
    private Long id;
    private String name;
    private SubEntity subEntity;
    
    // getters and setters
}

public class SubEntity {
    private Long id;
    private String subName;
    
    // getters and setters
}
  1. 創(chuàng)建對應(yīng)的mapper文件,定義resultMap來實(shí)現(xiàn)一對一映射關(guān)系。
<!-- MainEntityMapper.xml -->
<mapper namespace="com.example.MainEntityMapper">
    
    <resultMap id="MainEntityResultMap" type="com.example.MainEntity">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        
        <association property="subEntity" column="sub_id" javaType="com.example.SubEntity">
            <id property="id" column="sub_id"/>
            <result property="subName" column="sub_name"/>
        </association>
    </resultMap>
    
    <select id="selectMainEntityById" resultMap="MainEntityResultMap">
        SELECT
            m.id,
            m.name,
            s.id as sub_id,
            s.sub_name
        FROM
            main_entity m
        LEFT JOIN
            sub_entity s
        ON
            m.sub_id = s.id
        WHERE
            m.id = #{id}
    </select>
</mapper>
  1. 在對應(yīng)的Java接口中定義查詢方法。
public interface MainEntityMapper {
    MainEntity selectMainEntityById(Long id);
}
  1. 在MyBatis配置文件中配置對應(yīng)的mapper。
<!-- mybatis-config.xml -->
<configuration>
    <mappers>
        <mapper resource="com/example/MainEntityMapper.xml"/>
    </mappers>
</configuration>
  1. 在代碼中調(diào)用查詢方法并獲取一對一映射關(guān)系。
MainEntity mainEntity = mainEntityMapper.selectMainEntityById(1L);
System.out.println(mainEntity.getName());
System.out.println(mainEntity.getSubEntity().getSubName());

通過以上步驟,就可以實(shí)現(xiàn)一對一映射關(guān)系的查詢操作。

0