2016-01-13 43 views
0

從/檢索列表 值的數據庫,所以我想知道我怎麼能 列表在數據庫中的一個字段,該字段的類型是 VARCHAR2 ,之後我想 檢索他們後來得到它的迴應。 如何存儲/使用Java

基本上我的項目去這樣了SoapUI請求==> Eclipse的==>的SQLDeveloper ==> Eclipse的==>了SoapUI響應

我有了清單一樣,

private String name; 
private int number; 
private List<String>channel; 
public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name= name; 
} 
public String getNumber() { 
    return number; 
} 
public void setNumber(int number) { 
    this.number= number; 
} 
public String getChannel() { 
    return channel; 
} 
public void setChannel(List<String>channel) { 
    this.channel= channel; 
} 
定義一個類

並且獲得該i插入到所述請求 例列表:[A,b,C,d] 現在我有一個問題在使用存儲過程將它們存儲在數據庫

database.AddInParameter("NAME",request.getName()); 
database.AddInParameter("NUMBER",request.getNumber()); 
database.AddInParameter("CHANNEL",request.setChannel());//it crashes here and it is returning NULL 
database.ExecuteNonQuery(); 

,我正從數據庫中像

while (rs.next()) 
{ 
save.setName(rs.getName()); 
save.setNumber(rs.getNumber()); 
save.setChannel(rs.getChannel()); 
} 

我失去了一些東西的數據? 有人可以告訴我如何解決它,我如何檢索列表作爲列表?

+1

您不在varchar中存儲列表。您將一個字符串存儲在varchar中。創建一個包含兩列的附加表:一個到主表的外鍵和一個varchar。如果列表中元素的順序很重要,則需要第三列來存儲索引。將列表中的每個元素存儲爲這個新表的一行。請尊重Java命名約定。 –

+0

同意@JBNizet,但根據您的實際情況,您可以將列表值存儲爲VARCHAR中的逗號分隔字符串,假定組合值長度始終適合單個VARCHAR,並假定值不包含逗號。最好在JB建議的子表中存儲。 – Andreas

回答

0

就ORM而言,一種選擇是創建與稱爲Channel的表的關係。

這樣每個名稱/號碼對象與來自頻道表的頻道結果有關係。

這也保持了數據庫中通道的重複。

相關問題