2017-09-02 5 views
1

でOracle SQLクエリにパラメータを渡すために、私はこのようなOracleとの接続を持っている:javaの - どのようにバルク

Connection con=getConnection(); 
String query="select ?, ? from my_table"; 
PreparedStatement p=con.prepareStatement(query); 
p.setString(1, "id"); 
p.setString(2, "lastName "); 
ResultSet rs=p.executeQuery(); 

すべてがここでOKですが、あなたが持っていないときI'amは、これを行う方法を疑問に思います固定数のパラメータを選択します。

たとえば、上記では、「id」と「lastName」のみを選択します。しかし、これらのパラメータは、さまざまなJavaメソッドから取得され、メソッドが、私が選択したSQLに渡したいパラメータの数を返すことができる状況に依存します。

私は「id」と「lastName」を得ることができますが、次回は「id」、「firstName」、「address」と「city」だけを取得できます。次に、それらをSQLクエリに渡したいと思います。 このような場合にSQLクエリでパラメータを使用する方法を教えてもらえますか?

+0

のようなSQL文を書く

String params = String.join(",", paramsList); 

あなたは、動的なクエリ建物以外の何かを期待していますか? –

答えて

1

必要なパラメータの量がわからないとき。次に、文字列配列/リストを受け入れ、カンマ区切り文字を結合するプログラムを作成します。これはあなたの問題を解決するはずです。

あなたがJava8を使用している場合

String paramsList = new String[]{"id", "first_name", "last_name"}; 

あなたは次のようにString.joinを使用することができます。そして、

String query="select " + params + " from my_table";