2017-05-14 4 views
0

このようなコード入力配列を持つ変数名は"出力" 変数 "output"はArrayのColumn_Nameのリストであるとします。私が得たい実際の出力は、私が設定したJtableに表示されるTable_nameとColumn_Nameのリストです。観光名所の主は、私はの一つ一つを実行したいアレイのリストを得た後、私はそのクエリの実行方法JAVAのARRAY変数を使用してWHERE句を選択してください

String[] output= example.split(","); 

のすべてのTABLE_NAMEを得ることができるので、「出力」の値のすべてを使用してこれらのクエリを実行する方法でありますSQLステートメントに配列値と処理コードは、この

for (String outputInsert : output) { 
    try { 
     rs2 = stmt.executeQuery("SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA ='"+sqldb+ "' AND COLUMN_NAME = '"+outputInsert+"';");   
    } catch (SQLException ex) { 
     Logger.getLogger(Retrieve.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} result rs2; 

のようですが、私はリストがある場合はそれがすべての実行されたSQL文

+0

あなたはどのような出力が得られ、ロガーには何が表示されますか?また、その場合にも入力を表示するといいでしょう、私は問題がtypos/quotemarksにあると思われます。 – iantonuk

+0

結果rs2とは何ですか?そして最後は?! –

答えて

-1

のすべての値を表示したい結果を得ることはありませんでした与えられた列の値に対して、すべての値に対してデータベースを使用するのではなく、 SQL文でIN節を試してみてください。 注:IN句には最大値の制限があります。

+0

質問に対処していない - それは効率ではなく、このケースではこのケースでは批判的に改善するだろうと私は疑います。 – iantonuk

+0

私は選択クエリに配列値を渡す方法を考えましたが、それでは –

+0

を読んでください質問自体ではなく、タイトルです。彼女は常に有効なrs2を取得していません。 – iantonuk

0

executeQueryの代わりにaddBatchコマンドとexecuteBatchコマンドを使用する必要があります。このポストExecute multiple SQL statements in javaを参照してください。

stmt.addBatch(query1); 
stmt.addBatch(query2); 

stmt.executeBatch(); 
関連する問題