MyBatis-ダイナミックsqlのtrim、where、setラベル

13203 ワード

要素
要素の主な機能は、自分が含むコンテンツの前に接頭辞を付けることも、その後に接尾辞を付けることもできます.これに対応する属性はprefixとsuffixです.
コンテンツを含む最初のコンテンツを上書きしたり、無視したり、最後のコンテンツを上書きしたりすることができます.対応する属性はprefixOverridesとsuffixOverridesです.要素にはこのような機能があるだけに、要素の代わりに非常に簡単に利用することもできます.
例:1)SQLマッピング文の追加:


2)データ操作インタフェースの追加方法:
public List<MyUser> selectUserByTrim(MyUser user);

3)データ操作インタフェースの呼び出し方法:
//   trim        
MyUser trimmu=new MyUser();
trimmu.setUname (" ");
trimmu.setUsex(" ");
List<MyUser> listByTrim=userDao.selectUserByTrim(trimmu);
System.out.println ("trim   =========================");
for (MyUser myUser:listByTrim) {
    System.out.println(myUser);
}

要素
要素の役割は、要素を書き込む場所でwhere文を出力することであり、もう一つの利点は、要素の中の条件出力がどのようなものかを考慮する必要がなく、MyBatisがスマートに処理することです.すべての条件が満たされなければ、MyBatisはすべてのレコードを検出し、出力後がandで始まると、MyBatisは最初のandを無視します.
もちろんorで始まるとMyBatisも無視します.また、要素にスペースを考慮する必要はなく、MyBatisはスマートを追加します.
例:1)SQLマッピング文の追加:

<select id="selectUserByWhere" resultType="com.po.MyUser" parameterType="com.po.MyUser">
    select * from user
    <where>
        <if test="uname != null and uname ! = ''">
            and uname like concat('%',#{uname},'%')
        if>
        <if test="usex != null and usex != '' ">
            and usex=#{usex}
        if >
    where>
select>

2)データ操作インタフェースの追加方法:
public List<MyUser> selectUserByWhere(MyUser user);

3)データ操作インタフェースの呼び出し方法:
//   where        
MyUser wheremu=new MyUser();
wheremu.setUname (" ");
wheremu.setUsex(" ");
List<MyUser> listByWhere=userDao.selectUserByWhere(wheremu);
System.out.println ("where   =========================");
for (MyUser myUser:listByWhere) {
    System.out.println(myUser);
}

要素
動的update文では、要素を使用して列を動的に更新できます.
例:1)SQLマッピング文の追加:

<update id="updateUserBySet" parameterType="com.po.MyUser">     
    update user
    <set>
        <if test="uname!=null">uname=#{uname}if>
        <if test="usex!=null">usex=#{usex}if>
    set>
    where uid=#{uid}
update>

2)データ操作インタフェースの追加方法:
public int updateUserBySet(MyUser user);

3)データ操作インタフェースの呼び出し方法:
//   set        
MyUser setmu=new MyUser();
setmu.setUid (1);
setmu.setUname("  ");
int setup=userDao.updateUserBySet(setmu);
System.out.println ("set      "+setup+"   ");
System.out.println ("=========================")