जब सूचियों के साथ प्रयोग किया जाता है, तो आइटम विशेषता द्वारा निर्दिष्ट मान का उपयोग foreach टैग के अंदर किया जाना चाहिए। नीचे के रूप में प्रयोग करें:
<foreach item="sId" collection="stripperIds" separator="," open="(" close=")">
#{sId}
</foreach>
सूची का उपयोग करते समय अनुक्रमणिका विशेषता अनिवार्य नहीं है। अधिक जानकारी के लिए MyBatis डॉक्स अनुभाग देखें, या DTD देखें - http:// mybatis.org/dtd/mybatis-3-mapper.dtd मापदंडों के बारे में अधिक जानकारी के लिए:
<!ELEMENT foreach (#PCDATA | include | trim | where | set | foreach | choose | if | bind)*>
<!ATTLIST foreach
collection CDATA #REQUIRED
item CDATA #IMPLIED
index CDATA #IMPLIED
open CDATA #IMPLIED
close CDATA #IMPLIED
separator CDATA #IMPLIED
>
इसके अलावा, वस्तुओं की सूचियों को नीचे दिए गए अनुसार foreach में पहुँचा जा सकता है। आप इसे आमतौर पर INSERT/UPDATE स्टेटमेंट के लिए इस्तेमाल करेंगे:
नमूना बीन :
public class StripperBean {
public StripperBean(int stripperID, String stripperName, String realName) {
this.stripperID = stripperID;
this.stripperName = stripperName;
this.realName = realName;
}
private int stripperID;
private String stripperName;
private String realName;
public int getStripperID() {
return stripperID;
}
public void setStripperID(int stripperID) {
this.stripperID = stripperID;
}
public String getStripperName() {
return stripperName;
}
public void setStripperName(String stripperName) {
this.stripperName = stripperName;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
}
आपके कार्यान्वयन में:
Map<String, Object> input = new HashMap<>();
input.put("club", club);
List<StripperBean> strippers = new ArrayList<>();
strippers.add(new StripperBean(1,"Ashley", "Jean Grey"));
strippers.add(new StripperBean(2,"Candice","Diana Prince"));
strippers.add(new StripperBean(3,"Cristal","Lara Croft"));
input.put("strippers", strippers);
return stripClubMapper.saveStripperDetails(input);
मैपर xml में :
<insert id="saveStripperDetails">
INSERT INTO EXOTIC_DANCERS (STRIPPER_ID, STAGE_NAME, REAL_NAME)
VALUES
<foreach item="stripper" collection="input" separator=",">
(#{stripper.stripperID},
#{stripper.stripperName},
#{stripper.realName})
</foreach>
</select>
अच्छा सवाल बीटीडब्ल्यू :)