2016-11-17 55 views
-1

我創建了一個名爲public static ResultSet ExecuteSQLQuery(String myQuery)現在在運行時我需要檢索從ResultSet中所執行的查詢方法。有什麼辦法從java ResultSet中檢索執行的查詢嗎?

我不知道是否有可能檢索ResultSet中所執行的查詢?

+0

可是......你是路過的查詢方法。有什麼問題? – null

+0

讓我說我使用查詢生成器,所以我不知道查詢內容。 在我的應用程序上有兩個步驟:查詢用於填充一些數據,然後出現一個動態搜索工具,該工具僅在ResultSet上具有可見性。 –

+0

所以解決這個問題。這只是一個小設計問題。 – EJP

回答

2

簡而言之:沒有

可能可以使用getStatement從結果。某些JDBC驅動程序可能會在語句的toString方法中公開該查詢,但即使情況如此,也不應該依賴它。

你必須保存查詢,如果你想在以後使用它保持它的周圍。

您可以創建一個新的類型的ResultSet的,包括查詢並返回:

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

public static ResultSetWithQuery ExecuteSQLQuery(String myQuery); 
+0

謝謝亞當,我在某些情況下,在運行時多個結果,使用{公共靜態的HashTable myQueries}作爲我的查詢商店和識別他們一個明智的決定? –

+0

這可能會起作用。您必須確保ResultSet正確地實現了hasCode和equals。或者,您可以將結果返回到自定義對象中。我編輯了答案來證明這一點。 – Adam

相關問題