2016-11-17 6 views
-1

実行時にpublic static ResultSet ExecuteSQLQuery(String myQuery)というメソッドを作成しました。実行されたクエリをResultSetから取得する必要があります。Java ResultSetから実行されたクエリを取得する方法はありますか?

実行されたクエリをResultSetから取得することは可能でしょうか?

+0

しかし...あなたはメソッドにクエリを渡しています。どうしたの? – null

+0

私はクエリジェネレータを使用しているので、クエリの内容はわかりません。 私のアプリケーションで2つのステップ:クエリは、いくつかのデータを埋めるために使用され、その後、結果セットでのみ可視性を持つ動的検索ツールになります。 –

+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を使用している{パブリック静的HashTable myQueries}私のクエリのストアとしての賢明な決定とそれらを識別する方法? –

+0

これはうまくいくかもしれません。あなたは、ResultSetがhasCodeとequalsを正しく実装していることを確認する必要があります。または、カスタムオブジェクトの結果を含むクエリを返すこともできます。私はそれを示す答えを編集しました。 – Adam

関連する問題