Framework/ibatis

#name# : entity에 설정된 값을 가져올 때 선언되는 방식 $name$ : 동적인 문자열을 사용할때 선언되는 방식 넘어온 데이터를 그대로 출력(보안에는 취약) 사용 예제--#PARAM#사용 SELECT E.EMPNO , E.ENAME FROM EMP E WHERE E.EMPNO = #EMPNO#; --$PARAM$ 사용 SELECT E.EMPNO , E.ENAME FROM $TABLENM$ E;
DELETE FROM EMP WHERE DEPT = #PARAM_DEPT#
에러SELECT A.NAME /* 이름 : 홍길동 */ FROM TEST A WHERE 1=1 AND A.ID = #PARAM_1# AND A.NAME = #PARAM_2# ibatis에서 스프링 서비스 단에서 PARAM_1, PARAM_2 의 바인딩 되는 변수를 넘겨 주었는데 쿼리 실행 결과 PARAM_1 세팅되는 값이 하나씩 밀리는 현상이 되어 PARAM_2의 값이 ?로 세팅이 되는 현상이 발생하였다. 쿼리 툴에서는 : 가 변수를 받을수 있는 구문이며 ibatis에서도 :가 변수를 받을수 있는것으로 되어 있어 넘겨받는 값이 제대로 세팅되지 않은것 원인 쿼리에 /* 이름 : 홍길동*/ 주석이 원인 주석형식은 맞으나 주석 안에 : 이 들어간것이 문제 해결 주석 안에 : 을 제거 하거나 XML에서 사용하는..
728x90
반응형
공손(gongson)
'Framework/ibatis' 카테고리의 글 목록