11월 25일
데이터처리 레이어 = Persistence Layer
데이터베이스에 대한 연결 및 지속성 처리, 선언적인 트랜잭션 관리(AOP)를 제공하는 Layer 임.
(1)Data Source 서비스
데이터베이스에 대한 연결을 제공하는 서비스이다. 다양한 방식의 데이터베이스 연경을 제공하고,이에대한 추상화계층을 제공함으로써, 업무로직과 데이터베이스 연결방식 간의 종속성을 배제한다.
Data Source 객체 획득 방법은 DriverManagerDataSource 빈을 등록
Connection 객체 획득 하기 위해서는 dataSource.getConnection()를 사용
@Resource 어노테이션을 사용하여 dataSource를 선언해주고 소스코드안에 dataSource.getConnection()메서드를 호출하여 Connection 객체 획득한다.
Data Access서비스는 다양한 데이터베이스 솔루션 및 데이터베이스 접근 기술에 일관된 방식으로 대응하기 위한 서비스 이다.
전자정부 프레임워크에서는 ibatis를 채택하여 사용하고있는데 간편하고 쉽게 사용할 수 있는 Data Mapper framwork 이다. ibatis는 소스코드 외부에 정의된 SQL문과 설정 정보를 바탕으로 객체와 테이블 간의 매핑 기능을 제공.
(1-1)SQL Mapping xml파일 작성
(1-2)iBatis Configuration xml파일 작성
1번에서 작성하였던 Mapping xml파일의 위치 경로를 설정해 줄수 있다.
(1-3)sqlMapClientFactoryBean 정의
스프링 연동설정으로 스프링과 iBatis 연동을 위한 설정으로 예전에는 스프링에서 제공하는 iBatis 연동설정인 org.SpringFramwork으로 시작하는 sqlMapClientFactoryBean으로 지정했다면 스프링4로 올라가면서 eGovFramwork으로 시작하는 sqlMapClientFactoryBean으로 지정해야 한다.
(1-4)DAO클래스를 작성
실행할 메서드를 호출하기 위한 메서드 구현할수 있다.
MyBatis는 iBatis를 토대로 개발하여 iBatis의 진화된 형태라고 보면됨.
*iBatis와 MyBatis의 차이점
첫번째,sqlMapClient->sqlSession으로 변경
두번째,어노테이션 설정방식으로 도입
세번째,RowHandler->ResultHandler으로 변경
(3-1)SQL Mapper xml파일 작성
sql문 작성, iBatis의 다이나믹 sql을 대체하여 if태그나 when,otherwise... 태그를 사용하여 동적인 sql문을 작성할수 있게해줌
(3-2)MyBatis Configuration xml파일 작성
MyBatis 공통 설정 파일로,sqlSession 설정 관련 상세내역을 제어할 수 있는 메인 설정부분.
환경설정 파일로 1번에서 작성했던 mapper.xml파일의 위치 경로를 잡아줌.
(3-3)SqlSessionFactoryBean 정의
스프링 과 MyBatis의 연동을 위한 설정
MyBatis는 스프링에서 계속 지원이 되고 있기 때문에 SqlSessionFactoryBean으로 설정하면됨
(3-4)DAO클래스를 작성
EgovAbstractMapper 클래스를 상속받아 DAO클래스를 작성

(3-1)SQL Mapper xml파일 작성
namespace에 fullname으로 경로를 설정해 줘야 한다.

(3-2)MyBatis Configuration xml파일 작성
@Mapper어노테이션을 사용하기 위한 설정이 필요함

(3-3)SqlSessionFactoryBean 정의
이거는 위에와 동일함
(3-4)DAO클래스를 작성
DAO클래스 대신 Interface 작성(Mapper Interface 방식)