在MyBatis中进行一对一关联查询需要使用resultType标签来映射查询结果。以下是一个示例:
-
定义两个实体类,例如User和Department,User类中包含一个Department属性,表示用户所属部门。
-
编写UserMapper.xml文件,定义一对一关联查询的SQL语句,并使用resultType标签将查询结果映射到User实体类中的Department属性。
<!-- 查询用户信息及其所属部门信息 -->
<select id="getUserWithDepartment" resultType="User">
SELECT u.*, d.*
FROM user u
INNER JOIN department d ON u.department_id = d.id
WHERE u.id = #{userId}
</select>
- 在UserMapper接口中定义getUserWithDepartment方法,方法参数为用户id,并在方法上添加@Select注解来指定调用的SQL语句。
@Select("getUserWithDepartment")
User getUserWithDepartment(Long userId);
- 调用getUserWithDepartment方法进行查询,并获取查询结果中的User对象,通过User对象的getDepartment方法获取用户所属部门信息。
User user = userMapper.getUserWithDepartment(userId);
Department department = user.getDepartment();
这样就完成了一对一关联查询,获取了用户信息及其所属部门信息。