본문 바로가기
웹 개발자 준비 과정🐳/전자정부프레임워크

전자정부프레임워크_ Sample_SQL.xml 파일 분석하기.

by @ENFJ 2022. 9. 27.

전자정부프레임워크 프로젝트_sql.xml 파일을 분석해보겠습니다.

 

 

 

 

 

1. sql.xml 파일은 src/main/resources/egovframework/sqlmap/example/sample 폴더 안에 위치합니다.

 

여기는 별로 설명할게 없다. 라고 생각했었는데,, 구글링을 해보니 

사실 sqlmap/example 폴더 아래에는 다음과 같이 mappers 와 sample 폴더 2개가 위치합니다. 그런데 신기하게도 

mappers 와 sample 폴더 2개를 열어보면 똑같은 파일이 존재하는 것을 볼수 있습니다.

 

(3) sql-map-config.xml 에서  mybatis 로 설정할건지 ibatis 로 설정할건지 선택할 수 있습니다.

그러니까 mappers 폴더에 있는 (2).xml 파일은 mybatis 문법으로 된 xml 이고,

sample 폴더에 있는(1) .xml 파일은 ibatis 문법으로 된 xml 파일입니다.

 

 

1. 저는 ibatis 문법을 사용할거기 때문에 (3)sql-map-config.xml 파일을 열어서 ibatis 문법을 사용할거다! 그러니까 ibatis로 된 sql을 읽어달라고 코드를 써 주면 됩니다.  

 

 

진짜 정말 긴 sql 문이 등장합니다..

sql id 가 prdt body 인걸 보니 상품(prdt)sql 임을 추측 해 볼 수 있습니다. 그밑에 sql문을 보면 최대 /최소가격 과 상품이름,상품메이커, 규격 도 보이네요. 일단 넘어가겠습니다. 아래에 이 sql문을 참고할때 다시 설명하도록 하겠습니다.

TypeAlias란 global 하게 사용할 typeAlias (클래스 풀 패키지명에 대한 간략한 별칭) 를 지정할 수 있게 해주는 옵션입니다.

그러니까 (1) 을 보면 User.Vo를 user 로 별칭 지정 , MemberVo를 member 로 별칭을 지정한다는 것입니다.

 

resultMap 은 SQL 문 외부에 정의한 매핑 요소로, result set 으로부터 어떻게 데이터를 뽑아낼지, 어떤 칼럼을 어떤 property로 매핑할지에 대한 상세한 제어를 가능케 해준다

 

(1). resultmap 에 각각 서비스의 컬럼들을 적어줍니다. 음.. 카테고리 서비스를 예로 들면 저는 카테고리 부분에 사전에 들어갈 sql 컬럼을 참고하여  CATEG_CD(카테고리 코드) 와 CATEG_NM(카테고리 이름)으로 두었습니다.

 

(2). 그 후, 각각 CategListVo, BrandListVo,MemberListVo java파일을  service 폴더 아래에 만들어주었습니다.