MyBatis笔记四之一对一关联映射

一对一关系推荐使用唯一主外键关联,即两个表使用外键关联,由于是一对一关联,因此还需要给外键增加unique唯一约束。

下面我们以每个人只有一张身份证,一个身份证对应一个人为例。

1、在数据库mybatis中新建两张表,并插入一条数据,表结构如下:

MyBatis笔记四之一对一关联映射_第1张图片

表数据如下:

MyBatis笔记四之一对一关联映射_第2张图片

2、在mybatis项目中的pojo目录下新建与两个表相对应的pojo对象。

package pojo;

import java.io.Serializable;

public class Card implements Serializable{

	private Integer id;
	private String code;
	public Card(){}
	public Card(String code){
		this.code = code;
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
}
package pojo;

import java.io.Serializable;

public class Person implements Serializable{

	private Integer id;
	private String name;
	private Card card;
	public Person(){}
	public Person(String name,Card card){
		this.name = name;
		this.card = card;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Card getCard() {
		return card;
	}
	public void setCard(Card card) {
		this.card = card;
	}
}

3、在mapping目录下新建两个对象的映射文件

mapping/CardMapper.xml




	

mapping/PersonMapper.xml,在这里使用了元素映射一对一的关联关系,select属性表示会使用column属性的card_id值作为参数执行CardMapper中定义的selectCardById查询对的Card数据,查询出的数据将封装到property表示的card对象当中




	
	
		
		
		
		
	
	
	

4、编写mapper接口,与mapper映射文件在同级目录下。注意,这里的类名需与配置文件中的namespace一致,而方法名和参数也必须与xml文件中