머리말
대부분의 프로젝트는 이제 mybatis를 사용하지만 일부 회사는 최대 절전 모드를 사용합니다. mybatis를 사용하는 가장 큰 특징은 SQL 자체가 작성해야하며 SQL을 작성하려면 여러 매개 변수를 전달해야한다는 것입니다. 다양한 복잡한 비즈니스 시나리오에 직면하여 매개 변수를 전달하는 것도 일종의 지식입니다.
아래에서는 다중 매개 변수 전송 방법을 요약합니다.
방법 1 : 순차 파라미터 전송 방법
#{}의 숫자는 매개 변수를 전달하는 순서를 나타냅니다.
이 방법은 사용하는 것이 권장되지 않으며 SQL 층 표현식은 직관적이지 않으며 순서가 조정되면 오류가 발생하기 쉽습니다.
방법 2 : @Param 주석 매개 변수를 전달하는 메소드
#{}의 이름은 주석 @Param 브래킷에서 수정 된 이름에 해당합니다.
이 방법은 매개 변수가 많지 않은 경우 매우 직관적이므로 사용하는 것이 좋습니다.
방법 3 : 맵 파라미터 전송 메소드
#{}의 이름은지도의 키 이름에 해당합니다.
이 방법은 여러 매개 변수를 전달하는 데 적합하며 매개 변수는 휘발성이며 유연하게 전송 될 수 있습니다.
방법 4 : Java Bean 매개 변수 전송 방법
#{}의 이름은 사용자 클래스의 멤버 속성에 해당합니다.
이 방법은 매우 직관적이지만 엔티티 클래스를 구축해야합니다. 확장하기는 쉽지 않습니다. 상황에 따라 사용할 속성을 추가해야합니다.
매개 변수 전달 방법 맵퍼 인터페이스를 사용할 때
MyBatis가 프로그래밍을 위해 Mapper 인터페이스를 사용하는 경우, 기본 레이어는 동적 프록시 메커니즘을 사용하는데, 이는 표면에서 호출되는 동적 프록시 메커니즘을 사용하지만 실제로는 SelectOne ()과 같은 동적 프록시가 호출하는 해당 SQLSESSION 방법을 통해 이루어집니다. 관심있는 친구는 getMapper () defaultsqlsession의 메소드를 확인할 수 있으며, 결국 MapperProxy 객체를 얻을 수 있습니다. MapperProxy 객체가 Mapper 인터페이스 메소드를 호출하면 전달 된 매개 변수를 변환 한 다음 변환 된 매개 변수를 매개 변수로 사용하여 SQLSession (예 : SelectOne, Insert 등)에 해당하는 해당 조작 방법을 호출합니다. 전환 프로세스는 MapperMethod의 Execute () 메소드를 참조하여 구현할 수 있습니다. 간단히 말해서 다음 규칙을 말합니다.
1. 전달 된 스루가 단일 매개 변수이고 @Param 주석으로 명명되지 않은 경우, 해당 SQLSESSION 방법은 단일 매개 변수와 직접 호출됩니다.
2. 전달 된 사람이 단일 매개 변수가 아니거나 @Param 주석으로 이름이 지정된 매개 변수를 포함하면 해당 매개 변수가 전달을 위해 맵으로 변환됩니다. 특정 규칙은 다음과 같습니다.
2.1. 해당 매개 변수는 순서 대상 맵에서 대상 맵에서 키로 저장됩니다. 첫 번째 매개 변수는 param1이고 nth 매개 변수는 paramn입니다.
2.2. 매개 변수가 @Param 주석으로 이름이 지정된 매개 변수 인 경우 @Param에 의해 지정된 이름으로 대상 맵에 저장됩니다.
2.3. 매개 변수의 이름이 @param 주석의 이름을 따서 명명되지 않은 경우 순서 대상 맵에서 0, 1 및 n 형식의 키로 저장됩니다. 첫 번째 매개 변수는 0이고 Nth 매개 변수는 N입니다.
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.