#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>