mybatis 일괄 쿼리, 일괄 추가, 일괄 쿼리, 일괄 업데이트

분석:

foreach의 속성

  항목 : 반복 할 때 컬렉션에있는 요소의 별칭, 필수

  index : 목록 및 배열에서 index는 요소의 시퀀스 번호이고 맵에서 index는 요소의 키이며 선택 사항입니다.

  open : foreach 코드의 시작 기호, 일반적으로 '('및 ')'와 함께 사용되며, 일반적으로 in (), values ​​()에서 사용됨, 선택 사항

  구분 기호 : 요소 사이의 구분 기호, 선택 사항

  close : foreach 코드의 닫기 기호, 일반적으로 ')'및 '('와 함께 사용됨, 일반적으로 in (), values ​​()에서 사용됨, 선택 사항

  collection : foreach 반복의 객체입니다. 입력 매개 변수로 사용하면 List 객체는 기본적으로 목록으로 대체되고 배열 객체는 배열로 대체됩니다. Map 객체에는 기본 키가 없습니다.

    동시에 @param ( "xxx")를 사용하여 입력 매개 변수로 사용할 경우 키를 설정할 수 있습니다. 이때 기본 목록과 배열은 유효하지 않습니다.

  공식 지침 :

  List 인스턴스 또는 배열을 MyBatis에 매개 변수 개체로 전달할 수 있습니다. 이렇게하면 MyBatis가 자동으로이를 Map에 래핑하고 이름을 키로 사용합니다. 목록 인스턴스는 키로 "list"를 가지며 배열 인스턴스는 "array"키를 갖습니다.

 

1. 일괄 쿼리

상호 작용:

//参数里面的字符串由","进行拼接而成  
List<PartyOrganization> getOrgByListId(@Param("listOrgId") String listOrgId);

xml :

 <select id="getOrgByListId" resultType="com.safesoft.domain.partybuilding.entity.PartyOrganization">
        select
        id as id,
        org_name as orgName,
        parent_org_code as parentOrgCode,
        org_code as orgCode,
        org_leavel_type as orgLeavelType from t_zhcx_dj_dw_org
        where
        delete_flag = 0 and  id in
        <foreach item="item" index="index" collection="listOrgId.split(',')" open="(" separator="," close=")">
            '${item}'
        </foreach>
    </select>

둘째, 일괄 추가

상호 작용:

Integer insertByAttachmentList(@Param("attachmentList") List<ActivityMapAttachment> attachmentList);

xml :

<insert id="insertByAttachmentList">
        insert into t_xfdj_activity_map_attachment
        (
        activity_id,attachment_id
        ) values
        <foreach collection="attachmentList" item="attachment" separator=",">
            (
            #{attachment.activityId},
            #{attachment.attachmentId}
            )
        </foreach>
    </insert>

셋, 일괄 수정

상호 작용:

 Integer updateSignStatusByMemberList(@Param("activityId") Long activityI,@Param("memberList") List<Long> memberList);

xml :

<update id="updateSignStatusByMemberList" parameterType="java.util.List">
        update t_xfdj_activity_map_member set
        sign_in_status = 1
        where activity_id=#{activityId} and member_id in
        <foreach collection="memberList" index="index" item="item" separator="," open="(" close=")">
            #{item}
        </foreach>
    </update>

4. 일괄 삭제 (아래 삭제는 업데이트 일뿐 삭제가 아닌 상태 변경)

상호 작용:

 Integer batchDelproductId(List<Integer> productIds);

xml :

<update id="batchDelproductId">
        update application_customer_product set is_delete=true
        where id in
        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
            #{item}
        </foreach>

    </update>

 

추천

출처blog.csdn.net/qq_36138652/article/details/108846758