sql >> Database teknologi >  >> RDS >> Mysql

Lister i MyBatis 'IN'-klausul

Værdien angivet af item-attributten skal bruges inde i foreach-tagget, når det bruges med Lists. Brug som nedenfor :

    <foreach item="sId" collection="stripperIds" separator="," open="(" close=")">
        #{sId}
    </foreach>
 

Indeksattributten er ikke obligatorisk, når du bruger en liste. Se afsnittet MyBatis-dokumenter for mere information, eller tjek DTD - http:// mybatis.org/dtd/mybatis-3-mapper.dtd for mere info om parametrene:

<!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 >

Du kan også få adgang til lister over objekter i hver som nedenfor. Du vil typisk bruge dette til INSERT/UPDATE-sætninger:

Prøvebønne :

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;
    }       
}
 

I din implementering :

    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);
 

I mapper 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>
 

Godt spørgsmål BTW :)



  1. MySQL - Er det muligt at bruge LIKE på alle kolonner i en tabel?

  2. Hvordan indlæser jeg en lokal .SQL-fil i MySQL?

  3. Lagrede procedurer, MySQL og PHP

  4. Brug af Oracle Service Names med SQLAlchemy