在 MyBatis 的 XML 映射文件中,可以使用 和
标签来处理关联查询。这两个标签用于处理一对一(association)和一对多(collection)的关系。
- 一对一关联查询:
假设有两个实体类:User 和 UserDetails,一个用户对应一个用户详情。
首先,在 User 的映射文件中定义一个 resultMap,使用
然后,在 User 的映射文件中定义一个 SQL 查询语句,使用 JOIN 语句来查询 User 和 UserDetails 的数据:
SELECT u.*, ud.* FROM user u JOIN user_details ud ON u.user_id = ud.user_id WHERE u.user_id = #{userId}
- 一对多关联查询:
假设有两个实体类:Author 和 Book,一个作者可以有多本书。
首先,在 Author 的映射文件中定义一个 resultMap,使用
然后,在 Author 的映射文件中定义一个 SQL 查询语句,使用 JOIN 语句来查询 Author 和 Book 的数据:
SELECT a.*, b.* FROM author a LEFT JOIN book b ON a.author_id = b.author_id WHERE a.author_id = #{authorId}
这样,MyBatis 就会自动处理关联查询,并将查询结果映射到相应的实体类中。