MyBatisで結果をオブジェクトに変換する方法は何ですか?
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メソッドが必要です。
MyBatisはResultMapを使用して、クエリ結果を自動的にJavaオブジェクトに変換することができ、開発プロセスを簡素化することができます。