Mybatis 가 데 이 터 를 대량으로 삭제 하 는 방법 에 대한 예시

2626 단어 Mybatis일괄 삭제
이번 호 는 id 에 따라 데 이 터 를 대량으로 삭제 하 는 데 가장 많이 사용 되 는 예 입 니 다.
인터페이스 디자인 1:List 유형 단일 매개 변수

Integer deleteByIds(List<Integer> ids);
인터페이스 디자인 2:Array 배열 형식 단일 매개 변수

Integer deleteByIds(Integer[] ids);
인터페이스 디자인 3:가 변 길이 파라미터

Integer deleteByIds(Integer... ids);
인터페이스 2 를 예 로 들 면 mapper.xml 설정 은 다음 과 같 습 니 다.

<delete id="deleteByIds">
  DELETE FROM t_user WHERE id IN (
   <foreach collection="array" item="id" separator=",">
      #{id}
   </foreach>
  )
</delete>
노드 에 대한 설정 설명:
collection:옮 겨 다 니 는 대상 이 필요 합 니 다.추상 적 인 방법의 매개 변 수 는 1 개 에 불과 하고@Param 주 해 를 추가 하지 않 았 을 때 매개 변수 유형 이 List 집합 이면 list 이 고 매개 변수 유형 이 배열 이면 array 입 니 다.추상 적 인 방법의 매개 변수 가 1 개 를 넘 으 면@Param 주 해 를 추가 하고@Param 주해 설정 의 매개 변수 값 을 추출 합 니 다.
다음 그림 인터페이스 에서 보 듯 이:

item:모든 요소 데 이 터 를 옮 겨 다 니 며 현재 속성 은 요소 데이터 의 이름 을 사용자 정의 할 수 있 습 니 다.노드 의 하위 단계 에서\#{}자리 표시 자 를 사용 할 때 이 이름 으로 데 이 터 를 표시 할 수 있 습 니 다.
separator:생 성 된 코드 세 션 을 옮 겨 다 니 며 각 요소 데이터 간 의 구분 기호;
open/close:생 성 된 코드 세 션 의 맨 왼쪽 문자열/맨 오른쪽 문자열 을 옮 겨 다 닙 니 다.
추가 지식:\#{}과${}형식의 자리 표시 자
MyBatis 는 SQL 문 구 를 설정 할 때\#{}과${}두 가지 형식의 자리 표시 자 를 사용 하여 매개 변수 값 을 표시 할 수 있 습 니 다.
단순 원칙:JDBC 기술 로 프로 그래 밍 할 때 SQL 문 구 를 작성 할 때 물음표(?)를 쓸 수 있 습 니 다.위 치 는 모두\#{}형식의 자리 표시 자 를 사용 합 니 다.물음표 의 위 치 를 쓸 수 없습니다.${}형식의 자리 표시 자 를 사용 해 야 합 니 다!
\#{}형식의 자리 표시 자 를 사용 하면 값 만 표시 할 수 있 습 니 다!MyBatis 는 처리 할 때 미리 컴 파일 하 는 방식 으로 처리 합 니 다.즉,물음표 로 자리 차지 문자 가 표시 하 는 값 을 차지 하고 전체 SQL 문 구 를 MySQL 에 맡 겨 컴 파일 과 관련 된 처리(품사 분석,의미 분석,컴 파일 포함)를 하고 컴 파일 이 완 료 된 후에 컴 파일 에 성공 한 SQL 문 구 를 함께 수행 합 니 다.쉽게 말 하면\#{}형식의 자리 표시 자 를 사용 할 때 최종 처리 체 제 는 사전 컴 파일 을 사용 합 니 다!따라서 이러한 형식의 대체 자 를 사용 할 때 SQL 을 작성 할 때 값 의 데이터 형식 에 관심 을 가 질 필요 가 없 으 며 SQL 주입 의 위험 도 존재 하지 않 습 니 다!
${}형식의 자리 표시 자 를 사용 하면 SQL 문장의 임의의 세 션 을 표시 할 수 있 습 니 다!MyBatis 는 처리 할 때${}형식 자리 표시 자 에 해당 하 는 값 을 SQL 구문 에 연결 한 다음 에 SQL 문 구 를 MySQL 에 맡 겨 컴 파일 합 니 다.즉,${}형식 자리 표시 자의 값 은 컴 파일 하기 전에 SQL 구문 에 대 입 되 었 습 니 다!${}형식의 자리 표시 자 를 처리 할 때 사전 컴 파일 을 사용 하지 않 은 것 이 분명 합 니 다!따라서 이러한 형식의 대체 자 를 사용 할 때 는 SQL 구문 에서 데이터 형식 문 제 를 스스로 고려 해 야 합 니 다.예 를 들 어 문자열 형식의 값 은 작은 따옴표 상 자 를 사용 해 야 합 니 다!또한 SQL 주입 의 위험 도 존재 합 니 다!
마 이 바 티 스 가 데 이 터 를 어떻게 대량으로 삭제 하 는 지 에 대한 예시 적 인 글 은 여기까지 소개 되 었 습 니 다.더 많은 마 이 바 티 스 가 데 이 터 를 대량으로 삭제 하 는 내용 에 대해 서 는 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기