MyBatisの(マッピングファイルは、foreachのタグエラーを使用して、プロパティコレクションの問題)

org.apache.ibatis.exceptions.PersistenceException:
###エラー照会データベース。原因:org.apache.ibatis.binding.BindingException:パラメーター'IDS'が見つかりません。利用可能なパラメータは、[コレクション、リスト]は
###原因:org.apache.ibatis.binding.BindingException:パラメーター「IDS」が見つかりません。利用可能なパラメータは、[コレクション、リスト]です

、コレクションをforeachループを使用してMyBatisのを学習すると、上記のエラーのような

インタフェースコード:

    公共の一覧<従業員> getEmpsbyCondtionForeach(一覧<整数> IDS);

XMLコード:

    <! - クエリ情報でよりIDのID ===(、2、3)- > 
    < SELECT ID = "getEmpsbyCondtionForeach" resultTypeと= "EMP" > 
        WHERE IDでtbl_employeeからSELECT * 
        <! - コレクション:指定トラバースのセット:
                マップ内にカプセル化リストタイプの特定の治療パラメータは、キーマップがリストである
             項目:現在の反復の要素を割り当て指定された変数の
             分離:各要素の間にセパレータ
             横断A:オープン文字をステッチすべての結果が始まる
             スプライシング文字の終わりのすべての結果横断:閉じる
             インデックス:インデックスを。リストはインデックスがインデックスである場合、アイテムが現在の値でトラバースされる
                         キーマップは、マップこと項目値、トラバースマップインデックスを示している

             #{}変数名は、素子電流横断している変数の値を抽出することができます
         - > 
        < foreachのコレクション= "ID" 項目= "ITEM_ID" セパレータ"" = 
                オープン= "(" クローズ= ")" > 
            #{ITEM_ID} 
        </ foreachの> 
    </ 選択を>

ソリューション:

修正mapper.java:

    公共の一覧<従業員> getEmpsbyCondtionForeach(@Param( "IDS")一覧<整数> IDS);

または修正がmapper.xml:

    <! - クエリ情報でよりIDのID ===(、2、3)- > 
    < SELECT ID = "getEmpsbyCondtionForeach" resultTypeと= "EMP" > 
        WHERE IDでtbl_employeeからSELECT * 
        <! - コレクション:指定トラバースのセット:
                マップ内にカプセル化リストタイプの特定の治療パラメータは、キーマップがリストである
             項目:現在の反復の要素を割り当て指定された変数の
             分離:各要素の間にセパレータ
             横断A:オープン文字をステッチすべての結果が始まる
             スプライシング文字の終わりのすべての結果横断:閉じる
             インデックス:インデックスを。リストはインデックスがインデックスである場合、アイテムが現在の値でトラバースされる
                         キーマップは、マップこと項目値、トラバースマップインデックスを示している

             #{}変数名は、素子電流横断している変数の値を抽出することができます
         - > 
        < foreachのコレクション= "リスト" 項目= "ITEM_ID" セパレータ"" = 
                オープン= "(" クローズ= ")" > 
            #{ITEM_ID} 
        </ foreachの> 
    </ 選択を>

理由:

Propertiesコレクションのforeachのタグは、さまざまな状況下で、この属性の値は、次の3つの場合がありますが、同じではありません。

1着信がある場合は、単一のパラメータとパラメータのタイプがリストである時、コレクション属性値リスト。

図2に示すように、入ってくる単一のパラメータと時間パラメータの型は、配列、プロパティ値の配列コレクションの配列である場合。

入ってくるパラメータが多い場合、図3に示すように、我々はもちろん、単一のパラメータとしてパッケージ化することができ、地図にそれらをパッケージ化する必要があります地図、実際には、あなたはまた、MyBatisの中でそれを入れている、入ってくるパラメータにしている場合地図にパッケージ化、マップがキーパラメータ名であるので、この時間は、コレクションプロパティの値は、マップ内の独自のパッケージにリストや配列のキーターゲットに渡されます。

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/xjs1874704478/p/11917351.html