MyBatisの:updatebyexample与updateByExampleSelective

  MyBatisの、リバースエンジニアリングツールは、一般的に、単純な単一の操作のためのインタフェースとxmlファイルマッピングテーブルを生成します。

  updateByExampleとupdateByExampleSelective、データベース更新操作の役割:二つの方法があります。(また、挿入およびinsertSelectiveボール状!)

注:1、後者ははるかに動的なタグ<もしテスト=「XXX = NULL!」>決意、ヌル値、挿入操作を行わないであることを除いて。

   2、updateByExampleSelective条件は、主キーを含んでも含まなくても、プライマリ・キーを更新しなくてもよい。updateByExample条件は、主キーに含まれなければなりません

updateByExample:

<更新ID = "updateByExample"のParameterType = "マップ"> 
    更新tb_itemの
    セットID =#{record.id、jdbcType = BIGINT}、
      タイトル =#{record.title、jdbcType = VARCHAR}、
      sell_point =#{record.sellPoint、 jdbcType = VARCHAR}、
      価格 =#{record.price、jdbcType = BIGINT}、
      NUM =#{record.num、jdbcType = INTEGER}、
      バーコード =#{record.barcode、jdbcType = VARCHAR}、
      画像 =#{レコード。画像、jdbcType = VARCHAR}、
      CID =#{record.cid、jdbcType = BIGINT}、
      ステータス =#{record.status、jdbcType =TINYINT}、
      作成 =#{record.created、jdbcType = TIMESTAMP}、
      更新 =#{record.updated、jdbcType = TIMESTAMP}
     < もしテスト= "_パラメータ!= nullの"> 
      <REFIDが含ま= "Update_By_Example_Where_Clause" /> 
    </ もし > 
> </更新

updateByExampleSelective:

<更新ID = "updateByExampleSelective"のParameterType = "マップ"> 
    更新tb_item
     <セット> 
      < もしテスト= "record.id!= NULL"> 
        ID =#{record.id、jdbcType = BIGINT}
       </ 場合 > 
      < もしテスト= "record.title!= NULL"> 
        表題 =#{record.title、jdbcType = VARCHAR}
       </ 場合 > 
      < もしテスト= "record.sellPoint!= NULL"> 
        sell_point =#{record.sellPoint、jdbcType = VARCHAR}
       </ 場合 > 
      <もしテスト= "record.price!= nullを"> 
        価格 =#{record.price、jdbcType = BIGINT}、
       </ 場合 > 
      < もしテスト= "record.num!= nullの"> 
        NUM =#{record.num、jdbcType = INTEGER}
       </ 場合 > 
      < もしテスト= "record.barcode!= NULL"> 
        バーコード =#{record.barcode、jdbcType = VARCHAR}
       </ 場合 > 
      < もしテスト= "record.image!= NULL" > 
        画像 =#{record.image、jdbcType = VARCHAR}、
       </ 場合 > 
      <もしテスト= "record.cid!= NULL"> 
        CID =#{record.cid、jdbcType = BIGINT}
       </ 場合 > 
      < もしテスト= "record.status!= NULL"> 
        ステータス =#{record.status、 jdbcType = TINYINT}
       </ 場合 > 
      < もしテスト= "record.created!= NULL"> 
        作成 =#{record.created、jdbcType = TIMESTAMP}
       </ 場合 > 
      < もしテスト= "record.updated!= NULL "> 
        更新 =#{record.updated、jdbcType = TIMESTAMP}
      </ もし> 
    </セット> 
    < 場合、テスト= "_パラメータ!= nullの"> 
      <REFID = "Update_By_Example_Where_Clause"が含まれる/> 
    </ 場合 > 
  </更新>

 UpdateByExampleSelectivce使用:

  ProLogExample例=新しいProLogExample()。
  example.createCriteria()andNameEqualTo(xiaoming.getName())。
  proLogMapper.updateByExampleSelective(暁、一例)。

おすすめ

転載: www.cnblogs.com/unknownCode/p/11895754.html