sql >> Database >  >> RDS >> Mysql

Lijsten in MyBatis 'IN'-clausule

De waarde gespecificeerd door het item-attribuut moet worden gebruikt binnen de foreach-tag, wanneer deze wordt gebruikt met lijsten. Gebruik zoals hieronder:

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

Het indexkenmerk is niet verplicht bij gebruik van een lijst. Raadpleeg de sectie MyBatis-documenten voor meer informatie, of bekijk de DTD - http:// mybatis.org/dtd/mybatis-3-mapper.dtd voor meer info over de parameters :

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

Lijsten met objecten zijn ook toegankelijk in foreach, zoals hieronder. U zou dit normaal gesproken gebruiken voor INSERT/UPDATE-instructies:

Proefboon :

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

In uw implementatie:

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

In de 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>

Leuke vraag btw :)



  1. SQL-insert genereren in voor Oracle

  2. SQL-opdracht om alle databases in MySQL en MariaDB weer te geven en weer te geven

  3. Waarom is XAMPP niet geschikt voor productie?

  4. Parameteriseren van bestandsnaam in MYSQL LOAD DATA INFILE