Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Listy w klauzuli MyBatis „IN”

Wartość określona w atrybucie item powinna być używana wewnątrz tagu foreach, gdy jest używana z listami. Użyj jak poniżej:

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

Atrybut indeksu nie jest obowiązkowy w przypadku korzystania z listy. Zapoznaj się z sekcją dokumentacji MyBatis, aby uzyskać więcej informacji, lub zapoznaj się z DTD - http:// mybatis.org/dtd/mybatis-3-mapper.dtd aby uzyskać więcej informacji o parametrach :

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

Również listy obiektów są dostępne w foreach, jak poniżej. Zwykle użyjesz tego do instrukcji INSERT/UPDATE :

Próbka fasoli :

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

W Twojej implementacji :

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

W pliku XML mapowania :

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

Fajne pytanie BTW :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pokaż wszystkie aktualne blokady z get_lock

  2. Jak załadować dane do tabeli mysql, ale zignorować puste linie?

  3. Jak usunąć określony wiersz z tabeli mysql z tymi samymi wartościami kolumn?

  4. PHP/MySQL:Pobierz pojedynczą ścieżkę w modelu listy sąsiedztwa

  5. $filter nie działa w JPA/Olingo 2.0.11 z MySQL