web developer

[iBatis] EgovMap, resultClass, parameterClass 정의와 예시 본문

Persistence Framework/iBatis, MyBatis

[iBatis] EgovMap, resultClass, parameterClass 정의와 예시

trueman 2022. 2. 9. 17:20
728x90
728x90

EgovMap ?

1) 전자정부프레임워크에서 제공하는 제네릭 타입 (java의 Map클래스와 동일)
2) Map형태의 클래스로 iBatis(myBatis) parameterClass 또는 resultClass에서 사용할 수 있도록 제공되는 클래스


일반적인 resultClass와 차이점은 egovMap은 자동으로 컬럼을 맵핑할 수 있는 객체이름을 생성해 준다.

 

예를 들어, 데이터베이스에서 SELECT user_id FROM user WHERE name="홍길동" 이라는 SQL문을 통해 유저의 아이디(user_id)를 사용하고자 할때, map.get("user_id")와 같이 column 명으로 참조하지만, egovMap을 사용하면 camelcase의 규칙에 따른 이름으로 객체를 참조할 수 있다.

즉, 컬럼 명이 user_id 라면 userId로 참조, 컬럼 명이 userId라면 userid로 참조하게 된다.
컬럼명의 _다음 알파벳은 대문자로 인식하며 컬럼명에서 대문자는 그대로 소문자 변수로 맵핑된다.

 

결과적으로, egovMap.get("userId")로 참조하는 것을 말한다.


출처 : https://blog.naver.com/PostView.nhn?blogId=mklmkl2001&logNo=220934471615&parentCategoryNo=&categoryNo=16&viewDate=&isShowPopularPosts=true&from=search 


iBatis SQL Mapper


주요형식

<select id="" parameterClass="" resultClass="">         
             -- SQL 쿼리
</select>

id 속성
- 작성된 쿼리를 식별하기 위한 이름 설정한다.
- 동일한 이름을 사용할 수 없다.

parameterClass 속성            
- 쿼리실행에 필요한 값을 포함하고 있는 클래스의 타입을 설정한다.
- 기본자료형, ValueObject, Map 타입을 설정할 수 있다.
                        
resultClass 속성
- 쿼리실행 후 조회된 값을 담는 클래스의 타입을 설정한다.
- SELECT 쿼리일때만 사용된다.
- 기본자료형, ValueObject, HashMap 타입을 설정할 수 있다.


DAO와 SQL Mapper 작성 예시


EgovSevice.java, EgovServiceImpl, EgovDAO.java

// EgovService.java
List<EgovMap> selectList(ParamVo pVO) throws Exception;

// EgovServiceimpl.java
public List<EgovMap> selectList(ParamVo pVO) throws Exception {
	List<EgovMap> list = DAO.selectList(pVO);
    return list;
}

// EgovDAO.java
public List<EgovMap> selectList(ParamVo pVO) throws Exception {
	List<EgovMap> list = (List<EgovMap>)list("SQL.selectList", pVO);
    return list;
}

Egov-SQL.xml

<select id="selectList" resultClass="egovMap" parameterClass="paramVO">
	-- SQL 쿼리
</select>

출처 : https://cmelcmel.tistory.com/72


resultClass에 Map 형태의 클래스를 지정하면
iBatis(myBatis)에서 알아서 key:value(컬럼명:값) 형태로 map 클래스에 넣어서 리턴해줍니다.

key 값 생성시 언더바(_)를 대문자로 바꿔주는 건
myBatis 설정의 mapUnderscoreToCamelCase 값에서 설정할 수 있습니다.


출처 : https://xzio.tistory.com/356


728x90
728x90
Comments