MyBatis 的映射关系是其核心功能之一,它允许开发者通过配置文件或注解的方式,将数据库表中的数据映射到 Java 对象中,实现对象关系映射(ORM)。MyBatis 主要支持一对一、一对多和多对多三种映射关系,以下是对这三种映射关系的详细介绍:
一、一对一映射
一对一映射是指一个对象与另一个对象具有严格的一对一关系。例如,一个用户(User)对应一个地址(Address)。在 MyBatis 中,可以通过以下步骤实现一对一映射:
创建实体类:为每个表创建对应的 Java 实体类,并在需要关联的实体类中定义关联属性。
配置映射文件:在映射文件中使用 标签来定义一对一映射关系。例如:
xml
编写查询方法:在 Mapper 接口中定义查询方法,并在映射文件中编写对应的 SQL 查询语句,使用上述定义的 resultMap 进行结果映射。
二、一对多映射
一对多映射是指一个对象与多个对象具有一对多的关系。例如,一个订单(Order)对应多个订单详情(OrderItem)。在 MyBatis 中,可以通过以下步骤实现一对多映射:
创建实体类:在订单实体类中定义一个集合属性来存储订单详情。
配置映射文件:在映射文件中使用 标签来定义一对多映射关系。例如:
xml
编写查询方法:在 Mapper 接口中定义查询方法,并在映射文件中编写对应的 SQL 查询语句,使用上述定义的 resultMap 进行结果映射。
三、多对多映射
多对多映射是指多个对象之间存在复杂的多对多关系。例如,学生(Student)和课程(Course)之间的关系。在数据库中,多对多关系通常需要通过一个中间表来实现。在 MyBatis 中,可以通过以下步骤实现多对多映射:
创建实体类:在学生和课程实体类中分别定义集合属性来存储对方对象。
配置映射文件:需要为中间表创建映射关系,并在学生和课程的映射文件中分别使用 标签来引用中间表的映射关系。
编写查询方法:在 Mapper 接口中定义查询方法,编写复杂的 SQL 查询语句(通常使用 JOIN 操作),并使用 resultMap 进行结果映射。