mybatis batch 예제

AFAIK, 현재 일괄 삽입을 수행하는 유일한 방법은 다음과 같은 것을 사용하는 것입니다 : 당신은 매퍼 방법에 여러 매개 변수를 전달할 수 있습니다. 이렇게 하면 리터럴 ”매개 변수”로 이름이 지정되고 기본적으로 매개 변수 목록에서 해당 위치(예: #{param1}, #{param2} 등)가 표시됩니다. 매개 변수의 이름을 변경하려면(다중만) 매개 변수에 @Param(”paramName”) 지정을 사용할 수 있습니다. JDBC를 통해 대량 삽입을 구현하려면 (MyBatis는 내부적으로 JDBC를 사용함) 메모리 공간이 작아 일반적으로 스케일이 더 잘 조정되므로 다중 행 삽입을 통해 일괄 삽입을 권장합니다. 물론, 당신은 나를 신뢰하고 직접 테스트를해서는 안됩니다. 위의 다양한 삽입, 업데이트, 삭제 및 선택 방법은 강력하지만, 그들은 또한 매우 상세합니다, 그들은 또한 안전 입력하지 않고 그들이 할 수있는 IDE 또는 단위 테스트에 도움이되지 않습니다. 위의 시작 하기 섹션에서 매퍼를 사용하는 예제를 이미 보았습니다. 다음은 다중 행 및 배치 삽입을 비교하는 데 사용한 프로젝트입니다. 성능은 다양한 요인에 따라 달라지며 아래 결과는 상황에 적용되지 않을 수 있습니다. 나는 내 프로젝트에서 mybatis 봄을 사용하고 있습니다. 위의 요구 사항을 충족하기 위해 mybatis를 구성하는 방법?봄 관리 mybatis 환경에서 SqlSession 개체를 조작 할 수없는 것 같습니다. mybatis-spring에 삽입및 재사용 큐터를 사용하여 다른 작업에 사용하도록 지시하는 방법이 있습니까? 기본적으로 MyBatisBatchItemWriter는 ItemReader(또는 ItemProcessor에 의해 변환)를 사용하여 읽은 항목을 매개 변수 개체로 MyBatis(SqlSession#update()로 전달합니다. MyBatis에 전달 하는 매개 변수 개체를 사용자 지정 하려는 경우 itemToParameterConverter 옵션을 사용 하 여 실현할 수 있습니다.

예를 들어 itemToParameterConverter 옵션을 사용하면 항목 개체 이외의 모든 개체를 MyBatis에 전달할 수 있습니다. 샘플 다음: 이전 예제에서는 몇 가지 다른 항목을 사용합니다: 표준 구성에서는 모든 MyBatis 매퍼가 기본적으로 표준 세션 템플릿을 사용하므로 일괄 처리 모드를 사용하지 않습니다. 그런 다음 스프링 구성에는 각 레코드 종류에 맞게 특별히 구성된 대리자 작성기를 사용하는 CompositeItemWriter가 있습니다. 상호 메타 데이터는 예제에서 연결이므로 상호 작용이 업데이트된 키를 가질 수 있도록 먼저 작성해야 합니다. 일괄 처리 작업을 구현할 때 두 가지 중요한 사항이 있습니다. 따라서 매핑된 문을 실행하는 더 일반적인 방법은 Mapper 클래스를 사용하는 것입니다. 매퍼 클래스는 단순히 SqlSession 메서드와 일치하는 메서드 정의가 있는 인터페이스입니다. 다음 예제 클래스에서는 일부 메서드 시그니처와 메서드 시그니처가 SqlSession에 매핑되는 방법을 보여 줍니다.

일괄 처리가 연결된 레코드 나 다른 데이터베이스와 같은 복잡한 데이터를 작성해야 하는 경우 삽입 문이 한 테이블에만 삽입된다는 사실을 해결할 수 있습니다. 일괄 처리가 이루어지도록 하려면 작성자가 작성할 항목을 준비해야 합니다. 그러나 처리된 데이터에 대한 제약 조건, 기회 또는 통찰력에 따라 다음 기술을 사용하는 것이 흥미로웠습니다. 다음 트릭은 간단한 연결이 있는 항목이나 관련없는 테이블에서 작업할 수 있습니다. 안녕하세요 @dulong , 비 일괄 처리 작업에 대해 ExecutorType.BATCH를 사용하시겠습니까? 일괄 처리 실행기는 일괄 처리 작업에서만 유용한 추가 작업을 수행하기 때문에 몇 가지 단점이 있을 수 있습니다. 왜 그렇게 하시겠습니까? 참고: 이것은 MyBatis 일괄 처리 SqlSessions에 대 한 스프링 일괄 처리에 대 한. 일괄 처리 세션에 대한 자세한 내용은 SqlSession 사용 섹션으로 이동합니다. MyBatis가 실행기 유형을 자동으로 전환하지 않는 어노미가 있는 배치 삽입에 대해 generaterKey를 반환하는 방법은 무엇입니까?@insert.”입니다. 일반적인 방법은 배치 작업을 위한 별도의 매퍼를 만드는 것입니다.

Det här inlägget postades i Okategoriserade. Bokmärk permalänken.