0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MybatisのSQLで不等号を記載する方法

Posted at

Mybatisを用いた開発の場合、基本的にMapperXMLにSQLを記載することになる。
しかし、XMLファイルでは、不等号を表すのに利用する<>は特別な意味を持ち、タグの開始や終了として解釈されてしまう。

改善策1.使用箇所をCDATAセクションで囲む

CDATAとは、「Character Data(文字データ)」の略で、CDATAセクション内の内容は通常のXMLパースルールを無視して、そのまま文字列として扱われる。

例:価格が300円未満の商品を抽出する

<select id="selectGoods" resultType="goodsResultmap">
    SELECT
        *
    FROM
        goods
    WHERE
        price <![CDATA[ < ]]> 300;
</select>

改善策2.SQL全体をCDATAセクションで囲む

<select id="selectGoods" resultType="goodsResultmap">
<![CDATA[
    SELECT
        *
    FROM
        goods
    WHERE
        price < 300;
]]>
</select>

改善策3:エンティティ参照を使用する

文字 エンティティ参照
< &lt;
> &gt;
& &amp;
'(シングルクォーテーション) &apos;
"(ダブルクォーテーション) &quot;
<select id="selectGoods" resultType="goodsResultmap">
    SELECT
        *
    FROM
        goods
    WHERE
        price &lt; 300;
</select>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?