2012-05-24 109 views
1

我有一個postgresql表包含一個類型爲text [] []的字段。在JDBC代碼中,我使用了一個String數組,但是一個例外告訴我這些類型之間沒有匹配。 如果沒有類型之間的映射,你可以建議我e字符串數組的pgsql類型嗎?映射postgresql文本[] []類型和Java類型

這是代碼:

String list = "'{"; 
     for(int i=0; i<array.length; i++) { 
      list+=prodotti[i]+","; 
     } 
     list+="}'"; 

     preparedStm.setString(4, list); 
+0

你可以通過插入一些代碼來進一步指定你的情況嗎? – dezso

+0

一個'String'數組(或'String []')與'text [] []'不匹配,如果可以的話,它會是'text []'或者你應該使用String [] [] '在Java中。我並不是說它會起作用,但至少要匹配你的數據類型。 –

+0

您應該包含示例數據和確切的錯誤消息。會讓它更容易幫助你。 –

回答

1

爲了理解多維的PostgreSQL數組類型考慮以下quote from the manual

當前的實現並不強制 尺寸的聲明數目無論是。無論尺寸大小或數量如何,特定元素類型的數組都被認爲是相同類型的所有 。因此,在 CREATE TABLE中聲明數組大小或維數是簡單的文檔;它不會影響運行時間 的行爲。

在內部,類型text[],text[][]與PostgreSQL相同。 如果該列實際上包含二維文本數組,則必須在Java中匹配維度。但它也可以包含1維或3維陣列。 PostgreSQL將允許它。

還要注意的是textcharacter varyingvarchar)是不同的數據類型 PostgreSQL中(而做很大程度上是相同的時varchar沒有長度改性劑)。閱讀關於character types in the manual開始。