06.動的SQLとのforeach

動的SQL:

マップされたファイルのコード:

1   <! - 動的SQL、ラベルは他の場所では、第一及びを処理し、プロセスを自動的ないだろう名前や年齢、に基づいてクエリ- > 
2    < SELECT 上記のid =「queryStudentByNameAndAge」のParameterType =「学生」このresultMap = " STUDENT1 " > 
3。     学生からのSELECT * 
 4。     <! - 1 = 1 1.使用後に直接回避し- > 
5。       - < の後に直接避けるために使用するキーワード2、および- > 
6      < WHERE > 
7          < IF テスト= "SNAME!= nullのとSNAME!= ''" >
8              とSNAME =#{SNAME}
 9          </ もし> 
10          < もしテスト= "年齢!= NULLと年齢!= ''" > 
11              と年齢=#{年齢}
 12          </ なら> 
13      </ ここで> 
14    </ 選択>

属性のforeachループセット:

マッピングファイル:

  <! - foreachループ属性設定- > 
  < SELECT ID = "queryStudentsByHomeAddress" のParameterType = "ホーム" このresultMap = "STUDENT1" > 
    SELECT *学生から
    < WHERE > 
    < IF テスト=「ヌルとhomeAddress homeAddress = =「!! "" > 
    <! - colleactionは、属性の集合である各要素アウト項目が横断され、オープンサイクルは前に何かの結果である、サイクルの結果の背後に近い何か、サイクル区切られているものの区切り結果を追加することです- - > 
        < foreachののコレクション= "homeAddress" 項目= "homeAr" オープン= "とhomeAddressで("クローズ= ")" セパレータ= ""> 
            #{homeAr}             
        </ foreachの> 
    </ 場合>     
    </ 場所> 
  </ 選択>

テストカテゴリ:

1つの   ホームホーム= 新しいホーム();
2   リスト<文字列> homeAddress = 新しいのArrayList <文字列> ();
3   homeAddress.add( "北京" )。
4   homeAddress.add( "南京" )。
5  home.setHomeAddress(homeAddress)。
6   一覧<学生> STU = studentMapper.queryStudentsByHomeAddress(ホーム);

foreachループのコレクション:

マッピングファイル:(サイクルリストにそのサイクルに注意してください)

1   <! - foreachの循环集合- > 
2    < 選択のid = "queryStudentsWithList" のParameterType = "リスト" このresultMapは= "STUDENT1" > 
3      、学生から選択* 
 4      < > 5 <! - 必须写リスト- > 6 < もしテスト= "リスト!= nullをして、リスト!= ''" > 7 < foreachのコレクション= "リスト" 項目= "homeAr" オープン= "とhomeaddress(中"クローズ= ")" セパレータ= ""
     
     
         > 
8              #{homeAr}            
 9          </ foreachの> 
10      </ 場合>     
11      </ > 12 </ 選択>
   

テストカテゴリ:

1一覧<文字列>リスト= 新しいのArrayList <文字列> ();
2 list.add( "北京" )。
3 list.add( "南京" )。
4リスト<学生> STU = studentMapper.queryStudentsWithList(リスト);

配列によるforeachループ:

マッピングファイル:(ノートの循環は、入力パラメータを記述し、配列を記述する必要があります)[]簡単なオブジェクト・タイプではありません

1   <! - foreachの循环数组- > 
2    < 選択ID = "queryStudentsWithArray" のParameterType = "オブジェクト[]" このresultMap = "STUDENT1" > 
3      セレクト*学生から 
 4      < > 5 <! - 必须写アレイ- - > 6 < もしテスト= "配列= NULLと配列= ''!!" > 7 < foreachのコレクション= "配列" 項目= "homeAr" オープン= "内とhomeaddress("クローズ=「)」セパレータ
     
     
         = "" > 
8              #{homeAr}            
 9          </ foreachの> 
10      </ なら>     
11      </ ここで> 
12    </ 選択>

テストカテゴリ:

1列[] STR = { "北京"、 "南京" }。
2一覧<学生> STU = studentMapper.queryStudentsWithArray(STR)。

オブジェクトのforeachループ配列:

:(マッピングファイル)は、この時点でサイクルを書き込むための項目オブジェクトは、夏謝は、名前、その後ウェイポイントによってオブジェクトの値を取得することができないことに留意すべきです

1  <! - オブジェクトのforeachループアレイ- > 
2    < SELECT ID = "queryStudentsWithObjectArray" のParameterType =は"[]オブジェクト" このresultMap = "STUDENT1" > 
3      学生からSELECT *を 
 。4      < WHERE > 
5。     <! - アレイを作成する必要があります- > 
6。     < IF テスト= "= NULLと配列配列= ''!" > 
7       <! - 項目はサイクルのうちオブジェクト内に記述される- > 
8          < のforeach コレクション= "アレイ" アイテム= "アドレス」 オープン= "とでhomeaddress(" クローズ= ")" セパレータ= "" > 
9              <! - 对象点属性获取值- > 
10              #{address.homeAddress}            
 11          </ foreachの> 
12      </ なら>     
13      < / どこ> 
14    </ 選択>

テストカテゴリ:

1つのアドレスADDR1 = 新しいアドレス()。
2 addr1.setHomeAddress( "北京" )。
3つのアドレスADDR2 = 住所();
4 addr2.setHomeAddress( "南京" )。
5つの住所[]アドレス= {ADDR1、ADDR2}。
6一覧<学生> S = studentMapper.queryStudentsWithObjectArray(アドレス)。

 

おすすめ

転載: www.cnblogs.com/man-tou/p/11343800.html