마이베이츠 배치 인서트 작동 방법

PHP中文网
풀어 주다: 2017-06-21 16:04:12
원래의
1301명이 탐색했습니다.

일괄적으로 삽입할 때는 삽입된 데이터의 ID를 가져와야 합니다.

이렇게:

 <insert id="insertUser" parameterType="gys.entity.User" keyProperty="userId" useGeneratedKeys="true">INSERT INTO `user`
        (userName)
        VALUES
        (#{userName})</insert>
로그인 후 복사

이것은 문제가 되지 않습니다.

하지만 때로는 일괄 삽입하고 삽입된 ID를 가져와야 하는 경우도 있습니다

이렇게 작성하세요:

<insert id="insertUserBatch1" keyProperty="userId" useGeneratedKeys="true">INSERT INTO `user`
        (userName)
        VALUES<foreach collection="list" separator="," item="item">(#{item.userName})</foreach></insert>
로그인 후 복사

이렇게 실행하면 예외가 발생합니다.

사용 중인 mybatis 버전이 너무 낮기 때문입니다. 예를 들어 저는 mybatis의 버그인 3.2.2 버전을 사용하고 있습니다. .

버전 3.4.4로 변경하면 문제 없습니다.

위의 SQL 문을 다르게 작성하면 예외가 다시 보고됩니다(foreach에 삽입 포함)

예:

<insert id="insertUserBatch2"> <foreach collection="list" separator=";" item="item"> INSERT INTO `user`
                (userName)
            VALUES
                (#{item.userName})         </foreach></insert>
로그인 후 복사

마찬가지로 업데이트 일괄 업데이트도 있습니다.

<update id="updateUserBatch"><foreach collection="list" item="item" separator=";">update `user` set
                userName=#{item.userName}
            where
                userId=#{item.userId}</foreach></update>
로그인 후 복사

이는 mybatis가 기본적으로 하나의 SQL 문만 실행할 수 있기 때문입니다.

여러 SQL 문을 실행하기 위해 경로를 연결할 때 매개변수를 추가할 수 있습니다.

위 내용은 마이베이츠 배치 인서트 작동 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿