1. 程式人生 > 其它 >mybatis一對一關聯關係對映

mybatis一對一關聯關係對映

一對一關係:在操作上,任意一方引入對方的主鍵作為外來鍵。

例如 person 和 IDcard,一個人只有一個身份證號,而一個身份證號只對應一個人。

Person 表

IDcard 表

public class Person {
    private Integer id; 
    private String name; 
    private Integer age; 
    private String sex; 

    private IdCard card; //一對一關係對映
    
   //setter/getter方法
}
public class IdCard {
    
private Integer id; private String code; }
public interface PersonMapper {
    Person selectPersonById(int id);
}
<?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="cn.jason.bootmybatis.mapper.PersonMapper"
> <resultMap id="BaseResultMap" type="cn.jason.bootmybatis.model.Person"> <id column="id" property="id" jdbcType="INTEGER"/> <result column="name" property="name" jdbcType="VARCHAR"/> <result column="age" property="age" jdbcType="INTEGER"/> <
result column="sex" property="sex" jdbcType="VARCHAR"/> <!--這是巢狀查詢,這樣不方便,開發效率比較低,需要寫兩處sql和mapper介面和mapper檔案,比較多餘, 現在我想只寫一處sql就把需求搞定,也就是寫多表查詢。把多表查詢語句寫在一個mapper檔案中就可以了。--> <!-- <association property="card" column="card_id" javaType="IdCard" select="cn.jason.bootmybatis.mapper.IdCardMapper.selectById"> </association>--> <!--巢狀結果查詢 一對一關係對映--> <association property="card" javaType="IdCard"> <!--這裡面的屬性都是關聯的那個實體的屬性,都是可以在前臺獲取到的--> <id property="id" column="card_id"/><!-- id 為主鍵列,也就是在 tb_idcard 表中的 id 對應 tb_person 表中的 card_id --> <result property="code" column="code"/><!-- result表示需要查詢出來的結果欄位, column="code" 為tb_idcard中的欄位--> </association> </resultMap> <select id="selectPersonById" parameterType="Integer" resultMap="BaseResultMap"> select p.*,idcard.code from tb_person p ,tb_idcard idcard where p.card_id=idcard.id and p.id=#{id} </select> </mapper>

REF

https://www.cnblogs.com/jasonboren/p/11394758.html

https://blog.csdn.net/abc997995674/article/details/80873053