映射postgresql text [] []类型和Java类型

时间:2012-05-24 19:11:18

标签: java string postgresql jdbc multidimensional-array

我的postgresql表包含text [] []类型的字段。在JDBC代码中,我使用了一个String数组,但是一个例外告诉我,类型之间没有匹配。 如果类型之间没有映射,你能建议我使用字符串数组的pgsql类型吗?

这是代码:

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

        preparedStm.setString(4, list);

1 个答案:

答案 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