在MyBatis中,可以使用ResultMap来映射查询结果到Java对象。下面是一个示例:
首先,在Mapper XML文件中定义一个ResultMap,指定查询结果列与Java对象属性的对应关系。例如:
<!-- 定义ResultMap -->
<resultMap id="UserResultMap" type="com.example.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="email" column="email"/>
</resultMap>
然后在Mapper接口中定义一个查询方法,指定使用该ResultMap。例如:
public interface UserMapper {
// 使用ResultMap查询单个用户
@Select("SELECT id, username, password, email FROM users WHERE id = #{id}")
@ResultMap("UserResultMap")
User getUserById(int id);
}
最后,在使用Mapper接口的地方调用查询方法,将结果转为Java对象。例如:
// 获取SqlSessionFactory
SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
// 获取Mapper接口实例
UserMapper userMapper = sqlSessionFactory.openSession().getMapper(UserMapper.class);
// 调用查询方法
User user = userMapper.getUserById(1);
// 打印查询结果
System.out.println(user.getId() + ", " + user.getUsername() + ", " + user.getPassword() + ", " + user.getEmail());
以上代码会将查询结果转为User对象,并打印出对象的属性值。注意,User类需要有对应的属性和get/set方法。
通过使用ResultMap,MyBatis可以将查询结果自动转为Java对象,简化了开发过程。