どのようにMyBatisで結果をカプセル化するのか
MyBatis は、クエリ結果をカプセル化するさまざまな方法を提供します。以下は、よく使用されるカプセル化手法の一部です。
- エンティティクラスを使用してクエリ結果をJavaオブジェクトにマッピングするには、マッピングファイルで対応する結果マッピングを構成する必要があります(例:
public class User {
private int id;
private String name;
// getters and setters
}
結果マップの構成はマッピングファイルで
<resultMap id="userResultMap" type="User">
<id column="id" property="id"/>
<result column="name" property="name"/>
</resultMap>
- 結果マップ
- 外国語
<resultMap id="userResultMap" type="java.util.Map">
<id column="id" property="id"/>
<result column="name" property="name"/>
</resultMap>
- ネストしたクエリを利用: 関連するエンティティのクラスをマッピングファイルで設定することで、クエリ結果をネストされたエンティティクラスに格納できます。たとえば、ユーザーオブジェクトに複数の注文オブジェクトが含まれます。
public class User {
private int id;
private String name;
private List<Order> orders;
// getters and setters
}
public class Order {
private int id;
private String name;
// getters and setters
}
結果マッピングをマッピングファイル内に設定:
<resultMap id="userResultMap" type="User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<collection property="orders" ofType="Order">
<id column="order_id" property="id"/>
<result column="order_name" property="name"/>
</collection>
</resultMap>
Userオブジェクトを取得すると、Userに関連するOrderオブジェクトも自動で取得され、その結果がUserオブジェクトに格納されます。
データ構造とクエリ要求に応じて、一般的なカプセル化結果手法。