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属性に指定する。