MyBatis における CDATA の利用方法

MyBatisでは、CDATAはXML内の特別なマークアップで、テキストブロックをXMLコードではなくプレーンテキストデータとしてマークするために使用されます。CDATAマークアップは、<、>、&などの特殊文字を含むテキストデータをラップするために使用でき、これらの特殊文字がXMLコードとして解析されるのを防ぎます。

MyBatisのmapperファイルでは、CDATA記号でSQL文やその他のテキストデータを囲むことで、中の特別な文字が解析や変更されないようにできます。複雑なSQL文や特殊な文字を含むテキストデータを作成する際にはとても便利です。

例えば、下記はCDATAを記述したSQL文を例示しています。

<select id="getUsersByName" resultType="User">
    <![CDATA[
    SELECT * FROM users WHERE name LIKE '%${name}%'
    ]]>
</select>

上記の例では、CDATAタグがSQL文を囲んでおり、その中の特殊文字(%と$)がXMLコードとして解釈されないようにしています。これにより、SQL文で特殊文字を使用しても問題なく動作します。

CDATAタグはMyBatisのマッピングファイルに限らず、ほかのXMLファイルでも同様に利用できます。元のテキストフォーマットを保持したいテキストデータを囲むために使用します。

bannerAds