특별한딸기이야기
#, $대입자로 인라인 파라미터 사용하기 본문
밑의 sqlMap-test.xml 파일에는
<select id="getIdValue" resultClass="Member">
<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="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문을 이용한 악성 공격에 당할 수도 있고, 남용할 경우 성능상의 문제를 발생시킨다고 한다.*/
메인 클래스 에서는
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 |