mybatisのchooseタグの用途は?

MyBatisのchooseタグはJavaにおけるswitch文のように、複数の条件から一つを選択するために使用されます。条件を満たした最初のサブタグに対応するSQL文を実行します。

「choose」タグは複数個の「when」とひとつの「otherwise」サブタグを含みます。 各「when」サブタグは、条件判断の式を指定する「test」属性を含みます。 「when」サブタグの条件が満たされた場合、それに対するSQLステートメントが実行されます。 どの「when」サブタグの条件も満たされなかった場合、 「otherwise」サブタグ内のSQLステートメントが実行されます。

以下は、`choose` タグを使用した例です。

<select id="getUser" parameterType="int" resultType="User">
  SELECT *
  FROM users
  WHERE id = #{id}
  <choose>
    <when test="enabled != null">
      AND enabled = #{enabled}
    </when>
    <when test="name != null">
      AND name = #{name}
    </when>
    <otherwise>
      AND age = #{age}
    </otherwise>
  </choose>
</select>

指定パラメータenabledに値がある場合はSQL文AND enabled = #{enabled}が実行され、パラメータnameに値がある場合はAND name = #{name}が実行され、上記2条件以外の場合はAND age = #{age}が実行されます。

CHOOSE構文を使用することで、さまざまな条件に応じて異なる照会を実行する、より柔軟なSQLステートメントを書くことができます。

bannerAds