温馨提示×

mybatis怎么将结果转为对象

小亿
282
2023-12-22 10:01:00
栏目: 编程语言

在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对象,简化了开发过程。

0