我的postgresql表包含text [] []类型的字段。在JDBC代码中,我使用了一个String数组,但是一个例外告诉我,类型之间没有匹配。 如果类型之间没有映射,你能建议我使用字符串数组的pgsql类型吗?
这是代码:
String list = "'{";
for(int i=0; i<array.length; i++) {
list+=prodotti[i]+",";
}
list+="}'";
preparedStm.setString(4, list);
答案 0 :(得分:1)
要理解多维PostgreSQL数组类型,请考虑以下quote from the manual:
当前实现不强制声明的数量 尺寸要么。特定元素类型的数组都是 被认为属于同一类型,无论大小或数量 尺寸。因此,声明数组的大小或维数
CREATE TABLE
只是文档;它不会影响运行时 行为。
在内部,类型text[]
,text[][]
与PostgreSQL相同。 如果列实际上包含二维文本数组,则必须匹配Java中的维度。但它也可能包含1维或3维阵列。 PostgreSQL允许它。
另请注意,text
和character varying
(varchar
)在PostgreSQL中是不同的数据类型(当varchar
具有大致相同时没有长度修饰符)。首先阅读character types in the manual。