在 MyBatis 中,可以使用 ResultMap 来映射复杂对象,包括嵌套对象、集合对象等。下面是一个示例,演示如何使用 ResultMap 映射一个包含嵌套对象的复杂对象:
首先,定义一个 User 类和一个 Address 类,User 类包含一个 Address 对象:
public class User { private int id; private String username; private Address address; // getters and setters } public class Address { private String street; private String city; private String country; // getters and setters }
接下来,在 MyBatis 的 XML 配置文件中定义 ResultMap,将 User 对象和 Address 对象进行映射:
然后,在 SQL 映射文件中使用上面定义的 ResultMap:
最后,在 Java 代码中调用 MyBatis 执行查询:
User user = sqlSession.selectOne("getUserById", 1); System.out.println(user.getId()); System.out.println(user.getUsername()); System.out.println(user.getAddress().getStreet()); System.out.println(user.getAddress().getCity()); System.out.println(user.getAddress().getCountry());
通过以上步骤,我们成功地使用 ResultMap 实现了复杂对象的映射。需要注意的是,在定义 ResultMap 时要确保属性名和数据库字段名一致,以确保正确映射。