#author("2018-10-30T09:24:14+00:00","default:wikiadmin","wikiadmin")
-OR Mapperについて調査

*主要製品 [#peedb0ea]

**MyBatis [#f825516d]

-SQLとObjectのマッパー
-XMLにSQLを記載する、XMLにmethod名のIDをつけると該当メソッドはそのSQLを実施する。

***Includeする [#ffff16e3]

   <select id="countById" resultType="_long">
        SELECT
            COUNT(DISTINCT A.id)
        <include refid="searchConditionFragment">
            <property name="condition" value="#{condition}"/>
        </include>
    </select>

    <sql id="searchConditionFragment">
        FROM
            Hoge A
    </sql>

***In条件に展開する [#cd51c6dc]

        <if test="condition.prefecture != null and !condition.prefecture.isEmpty()">
        AND A.prefecture_id IN
        <foreach item="prefecture" collection="condition.prefecture" open="(" separator="," close=")">
            #{prefecture.id}
        </foreach>
        </if>

***コールバック処理 [#pc56c218]

 ResultHandlerを使う。

***Springbootで利用 [#q21238d8]

-V1.5.3と利用すると@Mapperつけても無視される。なのでブートクラスにMapperscanのパッケージ名+@Mapper併用で何とか起動

**Springbootとの連携 [#h0d28869]

-@Mapperをつけるか


-@MapperScanを使って対象のパッケージを指定する。

 <mybatis:scan base-package="org.mybatis.spring.sample.mapper" />
 @MapperScan("org.mybatis.spring.sample.mapper")

***SQLファイル [#l4681955]

    <sql id="searchConditionFragment">
        Select 
          *
        FROM
            TableA
    <if test="condition.someFlg != null and condition.someFlg">
        JOIN TableB  ON TableA.id = TableB.tablea_id
    </if>

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS