sql >> データベース >  >> RDS >> Mysql

MyBatisの「IN」句のリスト

    リストで使用する場合は、item属性で指定された値を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ステートメントに使用します:

    サンプルBean:

    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>
    

    いい質問ところで:)



    1. CloudSQLからAWSRDSへのMySQLデータベースの移行

    2. PostgreSQLのマルチクラウドフルデータベースクラスターフェイルオーバーオプション

    3. SQLiteとデータベースの初期化

    4. MySQLCAPIの使用-プリペアドステートメントを使用して行の挿入が成功したかどうかを確認します