Java HashMap이란?


HashMap이란 Map인터페이스의 한종류로써 Key와 Value 값으로 데이터를 저장하는 형태를 가지고 있다.


Key 값은 중복이 불가능하고, value 값은 중복이 가능하며, value에는 null도 사용 가능.


ex)

 map.put("BTC","1000만원");

 map.put("BTG","30만원");

 map.put("BTC","2000만원");


결과 : 최종 BTC를 호출할때는 Key에 저장된 value, 2000만원으로 마지막에 입력된 값으로 변경되어 2000만원이 호출 된다.



HashMap() 사용 방법

-HashMap 객체를 생성


HashpMap<Spring, Integer> map = new HashMap<String, Integer>();





생성자/메서드설명
HashMap()HashMap 객체를 생성한다.
HashMap(int initialCapacity)지정된 값을 초기용량으로 하는 HashMap 객체 생성한다.
HashMap(int initialCapacity , float loadFactor)지정된 값을 초기용량과 load factor의 HashMap 객체 생성한다.
HashMap(Map m)주어진 Map에 저장된 모든 요소를 포함하는 MashMap 을 생성한다.
void clear()HashMap에 저장된 모든 객체를 제거한다.
Object clone()현재 HashMap을 복제하여 반환한다.
boolean containsKey(Object key)HashMap에 지정된 키(key)가 포함되어 있는지 알려준다. (포함되어 있으면 true)
boolean containsValue(Object key)HashMap에 지정된 값(value)가 포함되어 있는지 확인한다.(포함되어 있으면 true)  
Set entrySet()HashMap에 저장된 키와 값을 엔트리(키와 값의 결합)의 형태로 Set에 저장하여 반환한다.
Object get(Object key)지정된 키(Key)의 값(객체)을 반환한다.
boolean isEmpty()HashMap이 비어 있는지 확인한다.
Set keySet()HashMap에 저장된 모든 키가 저장된 Set을 반환 한다.
Object put(Object key, Object value)HashMap에 키와 값을 저장 한다.
void putAll(Map m)Map에 해당하는 모든 요소를 HashMap에 저장 한다.
Object remove(Object key)HashMap에서 지정된 키로 저장된 값(객체)를 제거한다.
int size()HashMap에 저장된 요소의 개수를 반환한다.
Collection values()HashMap에 저장된 모든 값을 컬렉션 형태로 반환한다.


 

gfn이란 ? 

Global Function의 줄임말.


서비스 이름 : gfnService(strServiceId, strArgument)

데이터 셋 이름 : dsService


데이터셋 구조


여기서 DS란 dataset을 뜻함 


SVC_ID ( 서비스 이름 )


QUERY_LIST ( 쿼리 이름 )


SERVICE ( 사용자 정의 Biz.Service 이름 ) 현재 기본값 gvService로 지정되있음


IN_DATASET_LIST ( 쿼리에 보낼 DS )


OUT_DATASET_LIST ( 결과값 쿼리를 받을 DS ) 


CONTROLLER ( 사용자 정의 컨트롤러 ) 현재 기본값 gvController로 지정되있음


CALLBACK ( 서비스를 호출 후에 부를 함수 이름 , 공통으로 지정한 방식에 따라 사용법이 바뀜 우리 회사에선 COLLBACK을 타면 Y 아니면 공백 )


SYNC_YN ( 동기화 여부, 'Y' or '공백'으로 표시 )



----


사용 목적 - 서비스 호출할때 사용함


<!-- 중소벤치기업부 사업별 매핑 Merge 등록/수정 -->

<query id="SHYBCard.mergeMapping" isDynamic="true"> 

<statement><![CDATA[ 

/* SHYBCard.mergeMapping : 중소벤치기업부 사업별 매핑 Merge 등록 / 수정 */

            MERGE INTO SHYB_RCMS_MAP_M A

      USING ( SELECT :PMS_ID     AS PMS_ID

                   , :BZ_CLAS_CD AS BZ_CLAS_CD

                   , :ITXP_CD    AS ITXP_CD

                   , :H01_DOC    AS H01_DOC 

                FROM DUAL ) B 

      ON ( A.PMS_ID     = B.PMS_ID     AND

           A.BZ_CLAS_CD = B.BZ_CLAS_CD AND

           A.ITXP_CD    = B.ITXP_CD    AND

           A.H01_DOC    = B.H01_DOC

         )

      WHEN MATCHED THEN

           UPDATE 

              SET A.USE_YN   = 'Y'

                , A.UPD_ID   = :GV_WORKER_ID

                , A.UPD_DT   = SYSDATE

      WHEN NOT MATCHED THEN

           INSERT ( PMS_ID,  BZ_CLAS_CD,  ITXP_CD,  H01_DOC,  PILSU_YN,  SORT_SEQ,  USE_YN,  BIGO,  REG_ID      , REG_DT,   UPD_ID,       UPD_DT )

           VALUES (:PMS_ID, :BZ_CLAS_CD, :ITXP_CD, :H01_DOC, :PILSU_YN, (SELECT NVL(MAX(SORT_SEQ),0) + 1 

               FROM SHYB_RCMS_MAP_M 

              WHERE PMS_ID = :PMS_ID 

                AND BZ_CLAS_CD = :BZ_CLAS_CD 

                AND ITXP_CD = :ITXP_CD),'Y', :BIGO, :GV_WORKER_ID, SYSDATE, :GV_WORKER_ID, SYSDATE )

]]></statement>

</query>


빨간 부분에서 중요한건 -> merge insert구문에서 value에 쿼리를 넣었다는것. 값을 넣어야 하기 떄문에 value에 넣은게 맞겠지??

생각 잘해라!

'DBMS > Oracle' 카테고리의 다른 글

mybatis 동적 쿼리 choose 등 사용 주의사항  (1) 2018.07.13
mybits 에러  (0) 2018.07.13
Merge Into 사용방법  (0) 2017.11.23
데이터 변형  (0) 2017.10.17
LAPD,RAPD 사용법  (0) 2017.10.17

+ Recent posts