MyBatis | 検索結果を任意のJavaオブジェクトにマッピング | クラスでマッピングを定義する
コード
sample_mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="sample.mybatis">
<resultMap id="testTableResultMap" type="sample.mybatis.TestTable">
<id property="id" column="id" />
<result property="value" column="value" />
</resultMap>
<select id="selectTest" resultMap="testTableResultMap">
select * from test_table
</select>
</mapper>
説明
<resultMap>タグを使用して、検索結果とJavaクラスの間のマッピングを定義できる。<id>タグで識別子プロパティを定義する。- 識別子プロパティとは、インスタンスを識別するために使用するプロパティのことである。
- 識別子プロパティを指定しておくと、キャッシュやJOINマッピング時の性能が向上するようである。
- property属性にはJava側のプロパティ(フィールド)名を指定する。
- column属性にはデータベース側の列名を指定する。
<result>タグで各列のマッピングを定義する。- こちらもpropertyとcolumnの名前をマッピングする。
<resultMap>のid属性で、マッピングを一意に識別する名前を定義する(testTableResultMap)。- この名前を
<select>タグのresultMap属性に指定する。
- この名前を