이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 13726|회답: 0

[출처] mybatis 노트는 Mapper 인터페이스를 통해 주석이 달립니다

[링크 복사]
게시됨 2019. 1. 16. 오후 1:00:53 | | | |
1. mybatis가 지원하는 매핑 방법

mybatis가 지원하는 매핑 방법에는 xml 기반의 mapper.xml 파일과 java 기반의 매핑 인터페이스 클래스가 포함됩니다.
인터페이스 메서드 주석은 네 가지가 주요 @Insert, @Delete, @Update, @Select

2. 인터페이스 주석을 이용한 매핑 방법

다음 실험들은 모두 t_user 표를 기반으로 하며 다음과 같이 구조화됩니다:

2.1 증가 @Insert

기본적으로 세 가지 방식이 있는데, 수동 지정(애플리케이션 계층), 자체 추가 기본 키(데이터 레이어 단일 테이블), 그리고 선택 기본 키(데이터 레이어 다중 테이블)입니다.

1. 애플리케이션 계층에서 기본 키를 수동으로 지정합니다

수동 방법은 기본 키를 다르게 취급하지 않으며, 애플리케이션 계층이 삽입 전에 객체를 생성할 때 기본 키를 부여하는데, 이는 삽입 시 일반 필드와 다르지 않습니다.

위 예시에서 mybatis는 어떤 필드가 기본 키인지, id가 기본 키 필드인지 모르지만, 다르게 취급하지는 않습니다.

#{username} 메서드는 현재 문맥으로 사용자를 사용하는 것으로, 사용자의 속성에 접근할 때 속성 이름을 직접 쓸 수 있도록 합니다.

2. 테이블이 기본 키를 추가합니다

자가 증가하는 기본 키는 XML 구성에서 기본 키 백필에 해당하며, 간단한 예시입니다:

Option은 XML 내 select 태그 집합의 속성에 대응하고, userGeneratordKeys는 자체 증가 기본 키를 사용하고, keyProperty는 기본 키 필드 이름에 대응합니다.

자가 증가하는 기본 키는 기본 데이터베이스의 자가 증가 기능을 사용합니다.

3. 기본 키 선택

데이터 계층에서 값을 생성하기 위해 기본 키를 선택하고, 이 값을 기본 키의 값으로 사용합니다.


2.2 삭제 @Delete

삭제할 때는 @Delete 주석 값에 조건을 적고, 성공적으로 삭제된 레코드 수로 int 타입을 반환하면 됩니다.


2.3 변화 @Update

수정할 때는 @Update 값에 SQL 문장을 쓰고, 수정된 레코드 라인 수를 나타내는 int 타입을 반환하면 됩니다.


2.4 체크 @Select

쿼리는 좀 더 복잡한데, 쿼리는 객체에 대한 발견된 필드를 어떻게 설정할지 포함하며, 보통 세 가지 방법이 있습니다:

1. SQL 문에서 수동으로 별칭을 지정하여 맞출 수 있습니다

SQL 문장을 작성할 때는 각 필드에 객체 속성과 일치하는 별칭을 수동으로 할당하는데, 이는 테이블 필드 이름과 객체 속성 이름이 매우 다르고 테이블 필드가 많지 않은 상황에 적합합니다.


2. mybatis의 자동 밑줄을 긋는 혹 변환 기능

mybatis에는 mapUnderscoreToCamelCase라는 옵션이 있는데, 테이블 내 필드 이름이 객체의 속성 이름과 같지만 밑줄과 혹 쓰기의 차이가 있을 때 적용됩니다.

mapUnderscoreToCamelCase를 설정한 후, mybatis는 ResultSet에서 찾은 데이터를 객체로 설정할 때 밑줄을 hump로 변환하려고 시도하고, 앞에 있는 집합을 스티치하여 속성을 설정합니다.

변환을 켜세요:




그럼 쿼리:

인쇄된 결과를 보면, 객체에 birth_day 속성이 채워집니다:



3. ResultMap 사용

테이블의 필드 이름과 객체의 속성 이름이 크게 다르고 테이블에 필드가 많다면, 적응을 위해 ResultMap을 사용해야 합니다.


@Results XML의 ResultMap에 대응하며, ID를 지정할 수 있어 위의 결과를 참조하는 데 사용할 수 있습니다:

@ResultMap 사용하여 기존 ResultMap을 참조할 수 있으며, 이는 자바에서 @Results 주석을 사용해 정의하거나 XML에서 resultMap 태그를 사용해 정의할 수 있습니다.

2.5 샘플 코드

User.java


UserMapper.java

3. 요약

인터페이스 주석 사용의 장점:

1. 매핑 명제를 작성하는 것이 더 편리하고 빠릅니다

인터페이스 주석 사용의 단점:

1. 비교적 단순한 구성에 적합하며, 인터페이스가 너무 복잡하면 구현할 수 없습니다.

2. 동적 SQL을 사용할 수 없고, 다소 무례합니다.






이전의:데몬 스피릿 소환 V4.1.8은 조용히 사용됩니다
다음:Kirin 기사 독창성 탐지 도구 v2.0 (저자 연락처 정보 삭제)
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com