Skip to content

Commit 3e1d96e

Browse files
committed
Updated Japanese doc. [ci skip]
1 parent 523470e commit 3e1d96e

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

src/site/ja/xdoc/dynamic-sql.xml

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -191,31 +191,35 @@ AND title like ‘someTitle’]]></source>
191191
</subsection>
192192
<subsection name="ダイナミック SQL 記述言語">
193193
<p>バージョン 3.2 以降、ダイナミック SQL の記述言語が Pluggable になりました。言語ドライバーを記述することで、任意の言語でダイナミック SQL を記述することができます。</p>
194-
<p>標準では次の2つの言語が用意されています。</p>
195-
<ul>
196-
<li>xml</li>
197-
<li>raw</li>
198-
</ul>
199-
<p><code>xml</code> はデフォルトの SQL 記述言語で、これまでのセクションで説明した全ての機能を利用することができます。</p>
200-
<p><code>raw</code> というのは、実際には言語を使用しない場合に指定します。この場合、MyBatis がステートメントをデータベースドライバーに渡す前に行うのは引数の置換処理のみです。当然、 <code>xml</code> よりも <code>raw</code> を指定した場合の方が処理は高速です。
201-
</p>
202-
<p>言語の指定は、ステートメント要素に <code>lang</code> 属性を追加することで行います。
203-
</p>
204-
<source><![CDATA[<select id="selectBlog" lang="raw">
194+
<p>カスタムの言語ドライバーを使用する場合、まずは LanguageDriver インターフェイスを実装したクラスを作成します。</p>
195+
<source><![CDATA[public interface LanguageDriver {
196+
ParameterHandler createParameterHandler(MappedStatement mappedStatement, Object parameterObject, BoundSql boundSql);
197+
SqlSource createSqlSource(Configuration configuration, XNode script, Class<?> parameterType);
198+
SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType);
199+
}]]></source>
200+
<p>作成した言語ドライバーをデフォルトとして使用する場合は、mybatis-config.xml に次のような設定を追加します(typeAlias の使用は必須ではありません)。</p>
201+
<source><![CDATA[<typeAliases>
202+
<typeAlias type="org.sample.MyLanguageDriver" alias="myLanguage"/>
203+
</typeAliases>
204+
<settings>
205+
<setting name="defaultScriptingLanguage" value="myLanguage"/>
206+
</settings>
207+
]]></source>
208+
<p><code>lang</code> 属性を指定することで、特定のステートメントの言語ドライバーのみを変更することもできます。</p>
209+
<source><![CDATA[<select id="selectBlog" lang="myLanguage">
205210
SELECT * FROM BLOG
206211
</select>]]></source>
207212
<p>Mapper インターフェイスを使っている場合は <code>@Lang</code> アノテーションを使います。</p>
208-
<source><![CDATA[public interface Mapper {
209-
@Lang(RawLanguageDriver.class)
213+
<source><![CDATA[public interface Mapper {
214+
@Lang(MyLanguageDriver.class)
210215
@Select("SELECT * FROM BLOG")
211216
List<Blog> selectBlog();
212217
}]]></source>
213-
<p>LanguageDriver インターフェイスを実装することで、カスタムの言語ドライバーを作成することもできます。</p>
214-
<source><![CDATA[public interface LanguageDriver {
215-
ParameterHandler createParameterHandler(MappedStatement mappedStatement, Object parameterObject, BoundSql boundSql);
216-
SqlSource createSqlSource(Configuration configuration, XNode script, Class<?> parameterType);
217-
SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType);
218-
}]]></source>
218+
219+
<p><span class="label important">NOTE</span> Apache Velocity を使ってダイナミック SQL を記述することができます。MyBatis-Velocity プロジェクトを参照してください。</p>
220+
221+
<p>これまでのセクションで出てきた XML タグは、全てデフォルトの言語ドライバー <code>org.apache.ibatis.scripting.xmltags.XmlLanguageDriver</code> (エイリアスは <code>xml</code> )によって提供されているものです。</p>
222+
219223
</subsection>
220224
</section>
221225
</body>

0 commit comments

Comments
 (0)