인라인 메소드를 사용할 때 런타임 시 SQL문 구성

애플리케이션이 Data 인터페이스의 구현에서 SQL문을 문자열로 메소드에 전달하여 동적으로 SQL문을 구성할 수 있습니다.

런타임까지는 전체 SQL문을 알 수 없는 상황이 있습니다. 예를 들어, WHERE절의 술어는 사용자가 지정하는 검색 기준에 따라 다를 수 있습니다. 이러한 경우에는 Data 오브젝트에서 메소드를 호출할 때 SQL문에 대한 String 변수를 대체하십시오.

예를 들어, 애플리케이션을 사용하여 사용자가 부서의 프로젝트에 대한 레코드를 유지보수하는 테이블을 쿼리하는 기준을 지정할 수 있기를 원한다고 가정하십시오. 다음의 예제 코드와 유사한 코드를 사용할 수 있습니다.

String columnList = ...
String searchPred = ...
String SQLstmt = "SELECT " + columnList + " FROM DEPT_SCHEMA.PROJ WHERE " + searchPred;
Iterator<Employee> empReport = db.queryIterator(SQLstmt, Employee.class);

그러나 런타임 시 SQL문을 구성하는 경우, pureQuery가 런타임 전에는 명령문의 구문을 점검할 수 없음을 유념하십시오. 또한 DB2® 데이터베이스를 사용하는 경우, 정적 SQL의 성능을 이용할 수 없습니다.


피드백