MyBatis로-SQL 매개 변수를 전달하는 문

명령문 parameterType 속성에 MyBatis로 매핑은 입력 매개 변수의 유형을 개발. 우리가 문에 전달 여러 매개 변수를 매핑 할 경우, 우리는 매핑 문을 통과하는 HashMap의,의 HashMap으로 모든 입력 매개 변수를 둘 수 있도록 그러나 parameterType 속성은 하나의 매개 변수를 쓸 수 있습니다.

사실,지도,지도에 저장 한 다음 매개 변수의 SQL 문으로 전달 된 매개 변수의 수는 mybaits는 각 매개 변수를 얻을지도 수집을 분석 한 후 받았다.

예를 들면 :

< 선택 ID = "searchCourses" parameterType = "매핑" 된 resultMap = "CourseResult을" > 
과목 * SELECT 
WHERE TUTOR_ID = #} {tutorId 
AND #} {courseName LIKE NAME 
</ 선택 >

매핑 인터페이스 :

공용  인터페이스 DynamicSqlMapper { 
목록 <코스> searchCourses (지도 <문자열, 개체> 지도); 
}

시험 방법 :

@Test
 공개  공극 test_searchCourses1 () { 

SQLSESSION SQLSESSION = ;
시도 { 
SQLSESSION = MyBatisSqlSessionFactory.openSession ()를; 

DynamicSqlMapper 매퍼 = sqlSession.getMapper (DynamicSqlMapper. 클래스 ); 

지도 <문자열, 개체>지도 =  의 HashMap <문자열, 개체> (); 
map.put ( "tutorId", 1 ); 
map.put ( "courseName", "% 자바 %" ); 
목록 <코스> 코스 = mapper.searchCourses (지도); 

courses.forEach (System.out에 ::에 println); 

} 캐치(예외 E) { 
e.printStackTrace (); 
} 
}

MyBatis로 다른 방법은지도 문에 전달 된 입력 파라미터를 복수 설치되어있다.

예를 들어, 우리는 주어진 이름과 이메일 정보를 통해 학생 정보를 검색하려면, 쿼리 인터페이스는 다음과 같이 정의된다
등등 매퍼 방법의 경우, MyBatis로 기본 매개 변수에서 PARAM1, PARAM2 ...라는 방법으로 왼쪽에서 오른쪽으로합니다.

공용  인터페이스 StudentMapper { 
            목록 <학생> findAllStudentsByNameEmail (문자열 이름, 문자열 이메일); 
}

의 MyBatis는 매핑 구문에 전달되는 입력 매개 변수의 다수를 지원하며, 양식 # {PARAM}의 구문에서 그들을 참조 :

< 선택 ID = "findAllStudentsByNameEmail" 된 resultMap = "StudentResult" >  
선택 stud_id, 이름, 이메일, 학생들로부터 전화 
어디에 
이름 = # 자 {param1} 
이메일 = # {PARAM2} 
</ 선택 > 

# 자 {param1}는 첫 번째 매개 변수 이름을 의미하며, 그것은 # {PARAM2} 매개 변수는 두 번째 이메일을 참조하는 경우.

추천

출처www.cnblogs.com/Magic-Li/p/11685550.html