특별한딸기이야기

#, $대입자로 인라인 파라미터 사용하기 본문

딸기 공부방/iBATIS

#, $대입자로 인라인 파라미터 사용하기

특별한녀석 2008. 11. 19. 10:38
밑의 sqlMap-test.xml 파일에는
<select id="getIdValue" resultClass="Member">
select id, username, password, firstname, lastname, address, city, state, country from member where id = #value#
</select>

<select id="getLikeCity" resultClass="Member">
select id, username, password, firstname, lastname, address, city, state, country from member like '%$value$%'
</select>

메인 클래스 에서는

Member member = (Member)sqlMap.queryForObject("getIdValue", 1);

// 그럼 1이라는 값이 #value#에 들어가서 결과를 리턴한다.

List memberList = sqlMap.queryForList("getLikeCity", "burg");

// 그럼 burg라는 값이 $value$에 들어가서 결과를 리턴한다.

/*두 대입자의 차이는 정확하게는 모르겠지만 학원 수업과 네이버 지식인 검색을 통해서 내린 결론은 #는 preparestatement로 먼저 변환후에 사용하고 $는 아예 문자열을 박는 것이 아닌가 싶다. 다만 $을 사용하면 sql문을 이용한 악성 공격에 당할 수도 있고, 남용할 경우 성능상의 문제를 발생시킨다고 한다.*/

'딸기 공부방 > iBATIS' 카테고리의 다른 글

외부 파라미터 맵 사용하기  (0) 2008.11.19
인라인 파라미터 매핑 사용하기  (0) 2008.11.19
<include> 태그 예제  (0) 2008.11.19
iBATIS 간단 예제  (0) 2008.11.18