MyBatisの備忘録を記載していく。
IF文
<if test="(author != null and author.name != '') or authorList.size() > 0">
</if>
IN句
column in
<foreach item="sample" open="(" close=")" collection="sampleList" separator=",">
#{sample}
</foreach>
不等号記号「<」を使う場合
<![CDATA[
column <= #{parameter}
]]>
パラメータをDATE型としてバインドする場合
column = #{parameter,jdbcType=DATE}
include
<sql id="sample">
column = True
<sql>
<select id="xxxxx" resultType="string">
select column from table where <include refid="sample" />
</select>
resultType
結果がListの場合、resultTypeはListの中身の型を指定する。
List<String>型で取得したい場合は、resultType="string"と記述する。
Bulk Insert
<insert id="xxxxx" parameterType="java.util.List">
insert into table(column, ・・・) values
<foreach collection="list" item="item" separator=",">
( #{item.propertyName}, #{item.propertyName}, ・・・ )
</foreach>
</insert>
Bulk Update
<update id="xxxxx" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
update table set column = #{item.propertyName} where column = #{item.propertyName}
</foreach>
</update>
jdbcType
jdbcType | java |
---|---|
VARCHAR | String |
INTEGER | int |
NUMERIC | BigDecimal |
BIT | boolean |
DATE | Date |
TIMESTAMP | Date |
エイリアス
"java.lang.String"を"string"と表記できる。
http://www.mybatis.org/mybatis-3/ja/configuration.html#typeAliases
javaのMapperインタフェースのパラメータの指定の仕方
void select(
@Param("param1") String param1,
@Param("param2") List<String> param2);
Mapper XMLの方は、parameterType="map"と記述する。
検索条件(Criteria)の作り方
TableExample example = new TableExample();
example.createCriteria()
.andColumnEqualTo(value)
.andColumnEqualTo(value);
example.setOrderByClause("column DESC, column ASC");