Foreach wird hauptsächlich beim Aufbau unter Bedingungen eingesetzt. Sie kann über eine Sammlung in SQL -Aussagen iterieren. Die Attribute des Foreach -Elements enthalten hauptsächlich Element, Index, Sammlung, Öffnen, Trennzeichen und Schließen. Element repräsentiert den Alias, wenn jedes Element in der Sammlung iteriert wird. Index gibt einen Namen an, der die Position darstellt, zu der jede Iteration während des Iterationsprozesses erreicht wird. Open repräsentiert, was mit der Aussage beginnt, Separator stellt dar, welche Symbole zwischen jeder Iteration als Trennzeichen verwendet werden, und Close repräsentiert, was mit endet. Das kritischste und fehlerhafteste Sache bei der Verwendung von foreach ist das Sammelattribut. Dieses Attribut muss angegeben werden, aber in verschiedenen Fällen ist der Wert des Attributs unterschiedlich. Es gibt drei Hauptsituationen:
Wenn der übergebene in ein einzelner Parameter und der Parametertyp eine Liste ist, ist der Sammelattributwert die Liste.
Wenn das übergebene in ein einzelner Parameter und der Parametertyp ein Array ist, ist der Eigenschaftswert der Sammlung ein Array.
Wenn mehrere Parameter übergeben werden, müssen wir sie in eine Karte einkapseln. Natürlich kann auch ein einzelner Parameter in eine Karte eingekapselt werden. Wenn Sie Parameter übergeben, wird es auch in eine Karte in mybatis eingekapselt. Der Schlüssel der Karte ist der Parametername. Zu diesem Zeitpunkt ist der Sammelattributwert der Schlüssel der übergebenen Liste oder des Array -Objekts in der von selbst eingekapselten Karte.
Üben wir es durch Code:
Datentabelle:
Mit Oracle Hr.Anlyes Tisch verwenden
Entität: Mitarbeiter
Mitarbeiter der öffentlichen Klasse {private Integer EmployeeID; private String FirstName; private Zeichenfolge Lastname; private Zeichenfolge E -Mail; private String PhoneNumber; Privatdatum eingestellt; private String JobID; privates Bigdecimal -Gehalt; private BigDecimal CommissionPCT; Private Ganzzahlmanagerid; private kurze Abteilung;}Mapping -Dateien:
<!--List: The collection attribute type in forech is List, the value of collection must be: list, item value can be arbitrary, and the parameter names in Dao interface are arbitrary--> <select id="getEmployeesListParams" resultType="Employees"> select * from EMPLOYEES e where e.EMPLOYEE_ID in <foreach collection="list" item="employeeId" index="index" open="(" close=")" separator = ","> #{EmployeeId} </foreach> </select> <!-Array: Der Sammlungsattributtyp in forech ist Array, der Wert der Sammlung muss sein: List, der Artikelwert kann willkürlich sein, und die Parameternamen in der DAO-Schnittstelle sind arbitrary-> <select id = "-AwearesAreAlaSeAns-Namen". Collection = "Array" item = "EmployeeId" index = "index" open = "(" close = ")" separator = ","> #{EmployeeID} </foreach> </select> <!-map: Nicht nur das Sammelattribut in forech ist map.Key, aber alle anderen Attribute sind map.key, wie die folgenden Abteilungstätigkeiten-> <select id = "-Antribes" -Section id = "-Antriebe". <Where> <if test = "Abteilung ID! = NULL und Abteilung! separator = ","> #{EmployeeId} </foreach> </if> </where> </select>Mapper -Klasse:
public interface EmployeesMapper {List <We Employees> GetEmployeesListParams (List <String> EmployeeIds); LIST <Womails> GetOplopoeSArrayParams (String [] EmployeeIds); LISTE <NOWOPPORS> GetEmployeesMapparams (MAP <String, Object> Params);}Das obige ist die vollständige Beschreibung der Schreibmethode der MyBatis Incoming Set List Array Map -Parameter, die Ihnen vom Editor vorgelegt wurden. Ich hoffe, es wird für alle hilfreich sein!