Foreachは主に条件の構築に使用され、SQLステートメントのコレクションを反復することができます。 foreach要素の属性には、主にアイテム、インデックス、コレクション、オープン、セパレーター、およびクローズが含まれます。アイテムは、コレクション内の各要素が繰り返されるときのエイリアスを表します。インデックスは、反復プロセス中に各反復に到達する位置を表す名前を指定します。 Openは、ステートメントから始まるものを表し、セパレーターは各反復の間でセパレーターとして使用されるシンボルを表し、クローズは終了するものを表します。 Foreachを使用する際の最も重要で最もエラーが発生しやすいものは、コレクション属性です。この属性を指定する必要がありますが、さまざまな場合、属性の値は異なります。 3つの主な状況があります。
渡されたものが単一のパラメーターであり、パラメータータイプがリストである場合、コレクション属性値はリストです。
渡されたものが単一のパラメーターであり、パラメータータイプが配列である場合、コレクションのプロパティ値は配列です。
複数のパラメーターが渡された場合、それらをマップにカプセル化する必要があります。もちろん、単一のパラメーターをマップにカプセル化することもできます。実際、パラメーターを渡すと、MyBatisのマップにカプセル化されます。マップのキーはパラメーター名であるため、現時点では、コレクション属性値は、それ自体でカプセル化されたマップ内の渡されたリストまたは配列オブジェクトのキーです。
コードを介して練習しましょう:
データ表:
OracleのHr.Employeesテーブルを使用します
エンティティ:従業員
パブリッククラスの従業員{private Integer EmployeeID;プライベート文字列firstName;プライベート文字列lastName;プライベート文字列メール;プライベートストリングフォネンバル;プライベートデート雇用; Private String jobid;民間の大物給与;民間の大物委員会。プライベートインテガーマネージャー。 Private Short DepartmentId;}ファイルのマッピング:
<! - リスト:コレクション属性タイプのforechはリスト、コレクションの値は次のものでなければなりません:リスト、アイテムの値は任意であり、daoインターフェイスのパラメーター名は任意です - > <select id = "getemployeeslistparams" resulttype = "employees"> select * from ememployee_id "" foreach = "" "" open = " separator = "、">#{employeeId} </foreach> </select> <! - 配列:コレクション属性タイプのコレクションは配列でなければなりません。リスト、アイテムの値は任意であり、DAOインターフェイスのパラメーター名は任意です - > <select id = "getempolieEesaryeasarayparams" emplopid " collection = "array" item = "EmployeeId" index = "index" open = "(" close = ")" separator = "、">#{employeid} </foreach> </select> < <where> <if test = "digtimantId!= null and dempoilid!= ''"> e.department_id =#{departmentid} </if> <if> <if> "employeeIdsarray!= null and null and null and null and null.length!= 0"> and employee_id in < #{EmployeeId} </foreach> </if> </where> </select>マッパークラス:
Public Interface EmployeingMapper {List <Employees> GetEmployeSlistParams(List <String> EmployeeIds); list <Employees> GetemployeEsArrayParams(String [] EmployeeIds); List <Employees> GetEmployeSmapparams(Map <String、Object> Params);}上記は、編集者によって紹介されたMyBatisの受信リスト配列マップパラメーターの執筆方法の完全な説明です。私はそれが誰にでも役立つことを願っています!