2016-11-17 4 views
-1

실행 시간에 public static ResultSet ExecuteSQLQuery(String myQuery)이라는 메서드를 만들었습니다. ResultSet에서 실행 된 쿼리를 검색해야합니다.Java ResultSet에서 실행 된 쿼리를 검색 할 수있는 방법이 있습니까?

ResultSet에서 실행 된 쿼리를 검색 할 수 있는지 궁금합니다.

+0

하지만를 ... 당신은 방법으로 쿼리를 전달하고 있습니다. 뭐가 문제 야? – null

+0

내가 쿼리 생성기를 사용하여 쿼리 내용을 알 수 없다고 가정 해 보겠습니다. 내 응용 프로그램에서 두 단계 : 일부 데이터를 채우기 위해 쿼리가 사용 된 다음 결과 집합에 대해서만 가시성이있는 동적 검색 도구가 나타납니다. –

+0

그래서 고쳐주세요. 이것은 사소한 디자인 문제 일뿐입니다. – EJP

답변

2

짧은 : 아니요.

ResultSet에서 getStatement을 사용할 수 있습니다. 일부 JDBC 드라이버는 명령문의 toString 메서드에서 쿼리를 노출 할 수 있지만이 경우에도이를 신뢰할 수 없습니다.

나중에 사용하려면 쿼리를 저장하고 보관해야합니다.

당신은 쿼리가 포함 된 ResultSet의 새로운 유형을 작성하고 그것을 반환 할 수 :

public class ResultSetWithQuery extends ResultSet { 
    private String query 
    ... 
} 

public static ResultSetWithQuery ExecuteSQLQuery(String myQuery); 
+0

Adam, 당신이 런타임에 여러 resultSets, {public static HashTable myQueries}를 사용하는 경우가 있습니다. 내 쿼리를 저장하는 저장소와이를 식별하는 방법이 현명한 결정입니까? –

+0

그럴 수도 있습니다. ResultSet이 hasCode와 equals를 올바르게 구현하는지 확인해야한다. 또는 사용자 지정 개체에 결과가 포함 된 쿼리를 반환 할 수 있습니다. 나는 그 대답을 편집했다. – Adam