2017-09-02 132 views
1

我有這樣一個與Oracle的連接:爪哇 - 如何傳遞參數的Oracle SQL查詢散裝

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了這裏,但我'不知道如何做這個的時候,你沒有固定數量的參數你想選擇。

例如,在上面,我只想選擇'id'和'lastName'。但是這些參數取自不同的Java方法,並取決於方法可以返回不同數量的參數,我想將其傳遞給我的SQL選擇。

我不知道參數,所以一旦我只能得到'id'和'lastName',但下一次'id','firstName','地址'和'城市'。然後我想將它們傳遞給SQL查詢。 任何人都可以告訴我如何在這種情況下使用sql查詢參數?

+0

你期望比動態查詢建築以外的東西? –

回答

1

當你不知道你需要多少參數。然後創建一個接受String數組/列表的程序,然後加入他們的逗號分隔符。這應該可以解決你的問題。

例如

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

如果您正在使用Java8你可以使用String.join,如:

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

然後寫你的SQL語句就像

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