HashMap은 간단하게 말해 key와 value의 집합이다. 즉 key로 value를 찾아갈수 있게한다.

iBatis에서 적용예로 알아보자.

public void delete(String email, Calendar time) throws Exception {
			Map<String, Object> parameters = new HashMap<String, Objec>();
			parameters.put("calendarTime", time);
			parameters.put("emailAddress", email);
			sqlMapClientTemplate.update(".delete", parameters);
}

위의 경우 인자로 들어온 2개의 파라메터값을 put 한다. 

즉    String  // "calendarTime"  

 Object // time

이 되는것이다. 

이렇게 되면 HashMap에는

String            | Object

calendarTime | time

emailAddress | email

이런 형태로 key | value 쌍의 데이터가 들어간다.


이를 따라서 sqlMap의 .delete 까지 따라들어가면

<sqlMap>
 ~설정~
			<update id="delete" parameterClass="HashMap">
			update
						account
			set
						delete_mark=1,
						modified_time=#calendarTime#
			where
						email_address=#emailAddress#
			</update>
</sqlMap>


왜 쿼리가 delete가 아닌 update인것은 account를 실제 삭제하는것이 아니라 삭제된 것으로 표기하기 때문이다. (정하기나름)

중요한것은 parameterClass가 HashMap으로 들어왔기 때문에 해당 key를 #key#형태로 써줌으로서 내부에 값을 가져올수 있다는 것이다.

여기서는 calendarTime과 emailAddress Key로 소스의 데이터 time과 email 값을 쿼리문에 사용할수 있게되었다.



'DB > iBatis' 카테고리의 다른 글

iBatis 구현 - 5 xxxDAO.xml  (0) 2012.03.29
iBatis 구현 - 4 sqlMapConfig.xml  (0) 2012.03.29
iBatis 구현 - 3 xxx-servlet.xml 작성  (0) 2012.03.28
iBatis 구현 - 2 web.xml 수정  (0) 2012.03.28
iBatis 구현 - 1 대략적 개념  (0) 2012.03.28

+ Recent posts