당신 의 MyBatis-Plus 에 대량으로 삽 입 된 날 개 를 달 아 드 립 니 다(추천)
안녕하세요,저 는 이 형 입 니 다.
MyBatis-Plus(MP 로 약칭)를 사용 한 사람들 은 모두 MyBatis 의 증강 도구 라 는 것 을 알 고 있다.MyBatis 를 바탕 으로 증강 만 하고 변 하지 않 으 며 개발 을 간소화 하고 효율 을 높이 기 위해 태 어 난 것 이다.
특징.
4.567917.무 침입:강화 만 하고 변 화 를 하지 않 으 며 도입 은 기 존의 공사 에 영향 을 주지 않 습 니 다.예 를 들 어 실크 처럼 매 끄 럽 습 니 다4.567917.손실 이 적 음:시작 하면 자동 으로 기본 CURD 를 주입 하고 성능 은 기본적으로 손실 이 없 으 며 대상 을 대상 으로 직접 조작 합 니 다
실제 프로젝트 개발 에서 우 리 는 데 이 터 를 데이터베이스 에 대량으로 저장 하 는 수요 가 있 습 니 다.여러분 은 많 든 적 든 mybatis-plus 로 이 루어 진 적 이 있 죠?
구성 요소 의존
우선 Maven 을 통 해 my batis-plus 오픈 소스 구성 요 소 를 도입 하고 pom.xml 파일 에 다음 코드 를 추가 해 야 합 니 다.
<!--mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--mybatis plus extension, mybatis plus core-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.4.0</version>
</dependency>
원본 코드 를 보면 API 인터페이스 가 제공 하 는 대량 삽입 인 터 페 이 스 를 발견 할 수 있 습 니 다.서 비 스 를 시작 한 후 Postman 으로 디 버 깅 합 니 다.배경 인쇄 는 다음 과 같 습 니 다.
그림 에서 볼 수 있 듯 이 이른바 대량 삽입 인터페이스,사실은 하나의 for 순환 삽입,Oh,My God!그야말로 악몽 과도 같다.
설마 손 으로 이 루 겠 다 는 건 아니 겠 지?이렇게...
INSERT INTO test (a, b, c) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.a}, #{item.b}, #{item.c})
</foreach>
저 희 는 my batis-plus 의 소스 코드 를 읽 습 니 다.com.baomidou.my batisplus.extension.inject.methods.InsertBatch Some Column 가방 에 코드 를 대량으로 삽입 하여 이 루어 졌 습 니 다.여 기 는 소스 코드 를 붙 이지 않 겠 습 니 다.여러분 이 직접 추적 해 보 세 요.수 동 으로 확장 해 보 겠 습 니 다.확장 코드
Talk is cheap,show me the code.먼저 코드 를 보 여 드 리 고 왜 이렇게 실현 되 었 는 지 천천히 설명해 드 리 겠 습 니 다.
MybatisPlusConfig 파일 에 이 Bean 을 주입 합 니 다.코드 는 다음 과 같 습 니 다.
@Configuration
public class MybatisPlusConfig {
/**
*
*
* @return PaginationInterceptor
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
@Bean
public EasySqlInjector easySqlInjector() {
return new EasySqlInjector();
}
}
자체 테이프 의 BaseMapper 를 확장 해 야 합 니 다.코드 는 다음 과 같 습 니 다.
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Collection;
/**
* Mapper,
*
* @author
*/
public interface EasyBaseMapper<T> extends BaseMapper<T> {
/**
* mysql
*
* @param entityList
* @return
*/
Integer insertBatchSomeColumn(Collection<T> entityList);
}
우 리 는 업무 류 에서 아래 의 인용 을 실현 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
/**
* mapper , EasyBaseMapper
*
* @author
*/
@Mapper
public interface TestMapper extends EasyBaseMapper<Test> {
}
/**
* ,
*
* @author
*/
@Service
public class TestServiceImpl extends ServiceImpl<TestMapper, Test> implements TestService {
@Override
public Integer testBatch(Collection<Test> testList) {
return baseMapper.insertBatchSomeColumn(testList);
}
BaseMapper 에 서 는 직접 인용 할 수 없 기 때문에 왜 직접 인용 할 수 없 습 니까?MySql 데이터베이스 만 지원 한다 고 하 니 저 자 는 내 장 된 이유 가 없 죠?당신 에 게 줄 MyBatis-Plus 에 대량으로 삽 입 된 날 개 를 달 아 주 는 글 을 소개 합 니 다.더 많은 관련 MyBatis Plus 대량 삽입 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MyBatis + SpringBoot로 CRUD 앱 만들기 ※ 불필요한 것은 배 ※ 1/2MyBatis를 사용하여 ToDo 목록을 만듭니다. 할 일 등록 (블랭크를 등록 할 수 없음) 할 일보기 할 일 변경 할 일 지우기 SpringBoot의 CRUD가 가능한 책은 있지만 MyBatis를 사용한 것은 적...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.