일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- jsp
- select
- mybatis
- eGovFramework
- 개념
- input
- html
- spring
- JVM
- controller
- 정의
- Oracle
- javascript
- web.xml
- eGov
- sql
- was
- Java
- CSS
- POI
- jQuery
- 과정평가형
- json
- 태그
- TO_DATE
- 암호화
- 오류
- 함수
- array
- Ajax
- Today
- Total
web developer
[iBatis] EgovMap, resultClass, parameterClass 정의와 예시 본문
[iBatis] EgovMap, resultClass, parameterClass 정의와 예시
trueman 2022. 2. 9. 17:20EgovMap ?
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")로 참조하는 것을 말한다.
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
'Persistence Framework > iBatis, MyBatis' 카테고리의 다른 글
[iBatis] ParameterClass가 String일 경우 isNotEmpty property 설정여부 (2) | 2022.04.21 |
---|---|
[myBatis/SQL] LIKE + CONCAT / DBMS별 sql문 (0) | 2022.03.02 |
[ibatis/Mybatis] ibatis/Mybatis에서 #{}, ${} 차이 (0) | 2022.01.05 |