Mybatisでtrimタグの使用

2048 ワード

trimマークはフォーマットされたマークで、setまたはwhereマークの機能は以下のコードになります。
1、
select * from user 

  "WHERE" prefixoverride="AND |OR">

    <if test="name != null and name.length()>0"> AND name=#{name}if>

    <if test="gender != null and gender.length()>0"> AND gender=#{gender}if>

  
nameとgenderの値がnullでないと印刷されるSQLは、select*from user where name=xx'and gender=xx'です。
赤いマークのところに最初のandが存在しないので、上の二つの属性の意味は以下の通りです。
prefix:プレフィックス
prefixoverride:最初のandまたはorを除く。
2、
update user

  "set" suffixoverride="," suffix=" where id = #{id} ">

    <if test="name != null and name.length()>0"> name=#{name} , if>

    <if test="gender != null and gender.length()>0"> gender=#{gender} ,  if>

  
nameとgenderの値がnullでないと印刷されるSQLは、udate user set name='x x'であり、gender='xx'where id='x'である。
赤いマークのところにはカンマがありません。そして自動的にsetプレフィックスとwhere拡張子を付けました。上の3つの属性の意味は以下の通りです。ここでprefixは上のような意味があります。
suffixoverride:最後のカンマを外します。(他のマークでもいいです。上のプレフィックスのandのように)
スフィクス:サフィックス