Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Danh sách trong mệnh đề 'IN' của MyBatis

Giá trị được chỉ định bởi thuộc tính item nên được sử dụng bên trong thẻ foreach, khi được sử dụng với Danh sách. Sử dụng như bên dưới:

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

Chỉ mục attibute là không bắt buộc khi sử dụng Danh sách. Tham khảo phần tài liệu MyBatis để biết thêm thông tin hoặc xem DTD - http:// mybatis.org/dtd/mybatis-3-mapper.dtd để biết thêm thông tin về các thông số:

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

Ngoài ra, danh sách các đối tượng có thể được truy cập trong foreach như bên dưới. Bạn thường sử dụng điều này cho các câu lệnh CHÈN / CẬP NHẬT:

Đậu mẫu:

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

Trong quá trình triển khai của bạn:

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

Trong trình ánh xạ 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>

Câu hỏi hay đấy 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. Kỹ sư đảo ngược định nghĩa lớp khai báo SQLAlchemy từ cơ sở dữ liệu MySQL hiện có?

  2. Giải pháp cho truy vấn con trả về lỗi nhiều hơn 1 hàng

  3. Điều gì đang xảy ra với chuỗi khớp trường số nguyên MySQL?

  4. Làm thế nào để hiển thị hình ảnh từ cơ sở dữ liệu trong CodeIgniter?

  5. Cách thoát từ khóa giá trị trong mysql khi sử dụng câu lệnh Chọn