アスクルの こたにん (@Kotanin0) です。
アスクルでは、O/Rマッパーに MyBatis3 を使っています。
MyBatis は、単純なCRUD操作だけでなく、 動的SQL という便利な拡張構文があります。
たとえば、本の情報を管理するテーブルから、本の一覧を抽出したいSQLがあったとします。
- 本のタイトルを指定しなければ全件SELECT
- 本のタイトルを指定していればWHERE句を入れてSELECT
と、本のタイトルの指定有無でif文を書きたいような場面では、次のようにif
要素を利用すると解決できます。
<select> SELECT * FROM BOOK <if test="title != null"> WHERE title LIKE #{title} </if> </select>
MyBatis3 の 動的SQL は、上のようなif
要素をはじめとして、次の9種類の要素が用意されています。
- if
- choose
- when
- otherwise
- trim
- where
- set
- foreach
- bind
その中でもtrim
要素がとても便利だったので、今回はtrim
要素に限定して紹介していきます。