강좌 정보 일괄 쿼리
이 단계에서는 동적 SQL 을 사용하여 코스 번호 "1,2,3"으로 코스 정보를 일괄 쿼리하는 방법을 배우게 됩니다.
-
/org/lanqiao/mapper/ 디렉토리에 있는 CourseMapper.java 파일을 엽니다.
-
CourseMapper 인터페이스에서 selectCoursesByIds 메서드를 구현합니다. 이 메서드는 입력 매개변수를 저장하기 위해 Map<String, Object> 매개변수를 받아야 합니다.
List<Map<String, Object>> selectCoursesByIds(Map<String, Object> params);
-
/org/lanqiao/mapper/ 디렉토리에 있는 CourseMapper.xml 파일을 엽니다.
-
CourseMapper 네임스페이스에서 selectCoursesByIds SQL 문을 구현합니다. <foreach> 태그를 사용하여 ids 목록을 반복하고 IN 절을 구성합니다.
<select id="selectCoursesByIds" resultMap="courseResultMap" parameterType="java.util.Map">
SELECT * FROM course WHERE cNo IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
-
/org/lanqiao/test/ 디렉토리에 있는 MyBatisTest.java 파일을 엽니다.
-
selectCoursesByIds 기능을 테스트하기 위해 testSelectCoursesByIds 테스트 메서드를 구현합니다.
@Test
public void testSelectCoursesByIds() {
CourseMapper mapper = session.getMapper(CourseMapper.class);
List<Integer> ids = Arrays.asList(1, 2, 3);
Map<String, Object> params = new HashMap<>();
params.put("ids", ids);
List<Map<String, Object>> coursesByIds = mapper.selectCoursesByIds(params);
System.out.println(coursesByIds);
}
실행
코드가 제대로 작동하는지 확인하려면 관련 클래스를 코드에 추가해야 합니다.
CourseMapper.java:
import org.lanqiao.pojo.Course;
import java.util.List;
import java.util.Map;
MyBatisTest.java:
import java.util.Arrays;
import java.util.HashMap;
마지막으로, 터미널에서 코드를 컴파일하고 실행하고 Maven 을 사용하여 다음 명령으로 테스트 파일을 확인할 수 있습니다.
cd MyBatisCourseDemo03
mvn test
실행 결과는 👀 Preview를 참조하십시오.