Foreach est principalement utilisé dans la construction dans des conditions, il peut itérer une collection dans les instructions SQL. Les attributs de l'élément foreach incluent principalement l'élément, l'index, la collecte, l'ouverture, le séparateur et la fermeture. L'élément représente l'alias lorsque chaque élément de la collection est itéré. L'index spécifie un nom pour représenter la position à laquelle chaque itération est atteinte pendant le processus d'itération. Open représente ce qui commence par l'instruction, le séparateur représente les symboles utilisés comme séparateurs entre chaque itération, et la fermeture représente ce qui se termine. La chose la plus critique et la plus sujette aux erreurs lors de l'utilisation de Foreach est l'attribut de collection. Cet attribut doit être spécifié, mais dans différents cas, la valeur de l'attribut est différente. Il y a trois situations principales:
Si le passage est un paramètre unique et que le type de paramètre est une liste, la valeur d'attribut de collection est la liste.
Si le passage est un paramètre unique et que le type de paramètre est un tableau, la valeur de propriété de la collection est un tableau.
S'il y a plusieurs paramètres passés, nous devons les résumer dans une carte. Bien sûr, un seul paramètre peut également être encapsulé dans une carte. En fait, si vous passez des paramètres, il sera également encapsulé dans une carte dans Mybatis. La clé de la carte est le nom du paramètre, donc pour le moment, la valeur d'attribut de collection est la clé de la liste passée ou de l'objet de tableau dans la carte encapsulée par elle-même.
Passons-le à travers le code:
Tableau de données:
Utilisation de la table des employés HR d'Oracle
Entité: employés
Employés de classe publique {EmployeeId entier privé; String privé FirstName; String privé LastName; e-mail de chaîne privée; Phonenumber à chaîne privée; Date privée embauchée; Jobid à chaîne privée; salaire privé BigDecimal; Commission privée de BigDecimal; Private Integer ManagerId; Private Short DepartmentID;}Fichiers de mappage:
<! - Liste: le type d'attribut de collection dans la prédilection est la liste, la valeur de la collection doit être: la liste, la valeur de l'élément peut être arbitraire, et les noms de paramètres dans l'interface DAO sont arbitraires -> <Select id = "getEmployeesListParams" resultType = "élément" élément = "employeeId" index = index "". séparateur = ","> # {employeeId} </foreach> </lect> <! - Array: Le type d'attribut de collection dans la baie de prédilection est le tableau, la valeur de la collection doit être: la liste, la valeur de l'article peut être arbitraire, et les noms de paramètres dans l'interface Dao sont arbitraires -> <Select Id = "GetEmployeesArayParams" ResultType = "Employés"> Sélectionner * chez les employés E.EMPLOYES " Collection = "Array" item = "EmployeeId" index = "index" open = "(" close = ")" séparateur = ","> # {employeeId} </foreach> </lect> <! - Map: non seulement l'attribut de collection dans Forech est map.key, mais tous les autres attributs sont Map.Ke e <où> <if test = "départementid! = null et départementid! = ''"> e.Department_id = # {départementid} </ if> <if test = "EmployeeidsArray! = null and EmployeeidsArray.Length! = 0"> Et e.employee_id dans <ForEach Collection = "EmployeeidsArray" élément = "EmployeeId" Index = "index" open = "" ")") ") séparateur = ","> # {employeeId} </foreach> </ if> </ where> </lect>Classe de mapper:
Interface publique EmployésMapper {list <lackeyes> getEmployeesListParams (list <string> employeeids); Lister <lack employés> getEmployeesArrayParams (string [] employeeids); Liste <Lesseyrys> getEmployeesMapparams (map <string, objet> params);}Ce qui précède est la description complète de la méthode d'écriture du MyBatis Set List Array MAP Paramètres qui vous sont présentés par l'éditeur. J'espère que ce sera utile à tous!