SQL 변경이 필요한 상황이 발생하면 SQL을 담고있는 DAO코드 수정이 필요함. → DAO와 SQL 분리 필요
SQL을 하나의 컬렉션으로 담아두는 방식
맵을 사용해 키값을 이용해 SQL문장을 가져오는 방식
Map 타입의 SQLMap 프로퍼티 추가
각 메소드를 정해진 키값을 이용해 sqlMap으로부터 SQL을 가져와 사용하도록 만들기
XML설정 수정
<aside> 💡 Map을 초기화해서 sqlMap 프로퍼티에 넣기위해 <map>과 <entry>태그를 <property>태그 내부에 넣어주면 <entry>태그에 선언된 키와 값을 담은 Map 타입 오브젝트가 만들어져 프로퍼티에 주입
</aside>
장점 - SQL변경 시 설정에 <entry>만 추가해주면 됨
단점 - 오타가 있어도 메소드 실행 전 오류 확인 불가
→ 결론! 독립적인 SQL 제공서비스가 필요하다!!
SQL 서비스 인터페이스
스프링 설정을 사용하는 단순 SQL 서비스
SQLService 인터페이스는 DAO가 요구하는 SQL을 반환하기만 하면 됨.