mybatisで複数の結果セットを返す方法
データベース操作とJavaオブジェクトのマッピングを分離することに用いられる永続化フレームワークがMyBatisだ。MyBatisでは、次の2つの方法で複数の結果セットを返すことができる。
- その文を日本語に言い換えてください。
MyBatisのMapper XMLファイルでselect文を定義しておいて、そのselect文内でストアドプロシージャを呼び出す。例:
<select id="getMultipleResultSets" statementType="CALLABLE">
{call your_stored_procedure}
</select>
- 結果セットハンドラ
- native Japanese paraphrase: 結果をテーブルに格納する
- そういったプレッシャーにもかかわらず、彼女は場数を踏むことで演技の腕を上げた。
Mapperインタフェース上でResultMapの名称を指定した@ResultMapアノテーションを付与してListを返すメソッドを定義します。例:
@Select("SELECT * FROM table1; SELECT * FROM table2")
@ResultMap("resultSet1")
List<YourResultType> getMultipleResultSets();
@ResultMap("resultSet2")
List<YourResultType> getMultipleResultSets();
Mapper XMLファイルにResultMapを定義し、各結果セットの列名と属性名をマッピングします。たとえば、
<resultMap id="resultSet1" type="YourResultType">
<result column="column1" property="property1"/>
<result column="column2" property="property2"/>
</resultMap>
<resultMap id="resultSet2" type="YourResultType">
<result column="column3" property="property3"/>
<result column="column4" property="property4"/>
</resultMap>
MyBatisでは上記二つの方法で、複数の結果セットを返すことが可能になる。