728x90
전자정부프레임워크 3.x에서 DAO와 Mapper의 존재 여부는 사용하는 ORM 프레임워크인 iBatis 또는 MyBatis에 따라 다르게 구성된다.
1. iBatis 사용 시 (egovframework.rte.psl.orm.ibatis 패키지 포함)
- DAO 클래스가 많이 사용됨.
- XML에서 SQL을 정의하고, DAO에서 SQL을 호출하는 방식.
- SqlMapClientTemplate 또는 SqlMapClient를 사용하여 데이터베이스와 통신.
- Mapper가 별도로 존재하지 않음.
- DAO에서 직접 SQL을 실행하는 코드가 포함됨.
📌 예제 (iBatis DAO 사용 예)
@Repository("sampleDAO")
public class SampleDAO extends EgovAbstractDAO {
public List<?> selectSampleList() {
return list("Sample.selectSampleList");
}
}
- "Sample.selectSampleList" → iBatis XML에서 정의된 SQL ID를 호출.
📌 iBatis XML 예제 (Sample.xml)
<select id="Sample.selectSampleList" resultClass="SampleVO">
SELECT * FROM SAMPLE_TABLE
</select>
2. MyBatis 사용 시 (egovframework.rte.psl.dataaccess.mapper 패키지 포함)
- DAO 없이 Mapper 인터페이스로 대체됨.
- @Mapper 또는 XML Mapper를 사용하여 SQL을 정의.
- SqlSessionTemplate을 통해 SQL 실행.
- DAO를 사용하지 않고, 인터페이스 기반으로 SQL을 호출.
📌 예제 (MyBatis Mapper 사용 예)
@Mapper
public interface SampleMapper {
List<SampleVO> selectSampleList();
}
📌 MyBatis XML Mapper (SampleMapper.xml)
<select id="selectSampleList" resultType="SampleVO">
SELECT * FROM SAMPLE_TABLE
</select>
3. DAO와 Mapper의 차이점 정리
| 구분 | iBatis (DAO 방식) | MyBatis (Mapper 방식) |
| SQL 실행 방식 | SqlMapClientTemplate 활용 | SqlSessionTemplate 활용 |
| DAO 사용 여부 | DAO 클래스에서 SQL 호출 | DAO 없이 Mapper 인터페이스 사용 |
| XML에서 SQL 정의 | <sqlMap> XML 사용 | <mapper> XML 사용 |
| 인터페이스 사용 여부 | 없음 | @Mapper 인터페이스 사용 |
| 전자정부프레임워크 패키지 | egovframework.rte.psl.orm.ibatis | egovframework.rte.psl.dataaccess.mapper |
결론
전자정부프레임워크 3.x에서 DAO와 Mapper가 동시에 존재하는 것은 iBatis와 MyBatis를 모두 지원.
- iBatis 기반 프로젝트라면 DAO 클래스를 사용하고,
- MyBatis 기반 프로젝트라면 Mapper 인터페이스를 사용.
현재 전자정부프레임워크에서는 MyBatis 사용을 권장하므로, 새로운 프로젝트에서는 MyBatis 방식을 선택하는 것이 좋다.
728x90
'개발' 카테고리의 다른 글
| 이클립스 톰캣 실행 오류 해결 방법 (0) | 2025.03.13 |
|---|---|
| 전자정부프레임워크 3.x Tomcat 서버 기본 Context-path 변경 (0) | 2025.03.13 |
| 이클립스 eclipse.ini 파일에서 Java 경로 설정하기 (0) | 2025.03.13 |
| 전자정부프레임워크 버전별 JDK 버전과 개발환경에서 요구하는 JDK 버전 정보 (0) | 2025.03.12 |
| HTTP 메서드 정리 (0) | 2025.02.18 |