Foreach ส่วนใหญ่จะใช้ในการสร้างในสภาพมันสามารถวนซ้ำผ่านคอลเลกชันในงบ SQL แอตทริบิวต์ขององค์ประกอบ foreach ส่วนใหญ่รวมถึงรายการ, ดัชนี, คอลเลกชัน, เปิด, ตัวคั่นและปิด รายการแสดงถึงนามแฝงเมื่อแต่ละองค์ประกอบในคอลเลกชันซ้ำ ดัชนีระบุชื่อเพื่อแสดงตำแหน่งที่การวนซ้ำแต่ละครั้งถึงระหว่างกระบวนการวนซ้ำ Open แสดงถึงสิ่งที่เริ่มต้นด้วยคำสั่งตัวคั่นแสดงว่าสัญลักษณ์ใดที่ใช้เป็นตัวคั่นระหว่างการวนซ้ำแต่ละครั้งและปิดแสดงถึงสิ่งที่จบลงด้วย สิ่งที่สำคัญที่สุดและผิดพลาดมากที่สุดเมื่อใช้ foreach คือแอตทริบิวต์การรวบรวม คุณลักษณะนี้จะต้องระบุ แต่ในกรณีที่แตกต่างกันค่าของแอตทริบิวต์จะแตกต่างกัน มีสามสถานการณ์หลัก:
หากการส่งผ่านเป็นพารามิเตอร์เดียวและประเภทพารามิเตอร์คือรายการค่าแอตทริบิวต์การรวบรวมคือรายการ
หากการส่งผ่านเป็นพารามิเตอร์เดียวและประเภทพารามิเตอร์คืออาร์เรย์ค่าคุณสมบัติของคอลเลกชันคืออาร์เรย์
หากมีพารามิเตอร์หลายพารามิเตอร์ที่ผ่านมาเราต้องห่อหุ้มไว้ในแผนที่ แน่นอนพารามิเตอร์เดียวสามารถห่อหุ้มลงในแผนที่ ในความเป็นจริงถ้าคุณผ่านพารามิเตอร์มันจะถูกห่อหุ้มไว้ในแผนที่ใน mybatis คีย์ของแผนที่คือชื่อพารามิเตอร์ดังนั้นในเวลานี้ค่าแอตทริบิวต์การรวบรวมคือคีย์ของรายการที่ผ่านหรือวัตถุอาร์เรย์ในแผนที่ที่ห่อหุ้มด้วยตัวเอง
มาฝึกฝนผ่านรหัส:
ตารางข้อมูล:
ใช้ตาราง Hr.Employees ของ Oracle
เอนทิตี: พนักงาน
พนักงานชั้นเรียนสาธารณะ {พนักงานจำนวนเต็มเอกชน; สตริงส่วนตัวชื่อแรก; สตริงส่วนตัวนามสกุล; อีเมลสตริงส่วนตัว สตริงส่วนตัว phonenumber; วันที่จ้างส่วนตัวจ้าง; สตริงส่วนตัว jobid; เงินเดือนส่วนตัวขนาดใหญ่; Private BigDecimal CommissionPCT; ManagerId ส่วนตัว แผนกสั้น ๆ ส่วนตัว}การแม็พไฟล์:
<!-รายการ: ประเภทแอตทริบิวต์การรวบรวมในรายการคือรายการค่าของการรวบรวมจะต้องเป็น: รายการค่ารายการสามารถกำหนดได้โดยพลการและชื่อพารามิเตอร์ในอินเทอร์เฟซ DAO นั้นเป็นไปตามอำเภอใจ-> <Select ID = "GetEmployeEsListParams" OPTIONED "COLLIVELEDEENDEED" separator = ","> #{EmployeeId} </foreach> </select> <!-อาร์เรย์: ประเภทแอตทริบิวต์การรวบรวมใน forech คืออาร์เรย์ค่าของการรวบรวมจะต้องเป็น: รายการค่ารายการสามารถกำหนดได้และชื่อพารามิเตอร์ในอินเทอร์เฟซ Dao collection = "array" item = "EmployeeId" index = "index" open = "(" close = ")" separator = ","> #{EmployeeId} </foreach> </select> <!-แผนที่: ไม่เพียง e <โดยที่> <ถ้า test = "แผนก! = null และแผนก! = ''"> e.department_id =#{แผนก} </ถ้า> <ถ้า test = "EmployeeIdSarray! = null และ EmployeeIdSarray.length! = 0"> และ exployee_id separator = ","> #{EmployeeId} </foreach> </if> </where> </select>MAPPER Class:
Public Interface EmployomApper {List <spopilling> getemployeeslistparams (รายการ <string> EmployeeIds); รายการ <spopilling> getemployeesarrayparams (String [] EmployeeIds); รายการ <prolems> getemployeesmapparams (แผนที่ <สตริง, วัตถุ> พารามิเตอร์);}ข้างต้นเป็นคำอธิบายที่สมบูรณ์ของวิธีการเขียนของพารามิเตอร์แผนที่ชุดข้อมูล Mybatis ที่เข้ามา ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!