映射PostgreSQL文本[][]类型和Java类型

映射PostgreSQL文本[][]类型和Java类型,java,string,postgresql,jdbc,multidimensional-array,Java,String,Postgresql,Jdbc,Multidimensional Array,我有一个Postgres表,其中包含类型为text[][]的列。在JDBC代码中,我使用了字符串数组,但一个异常告诉我这两个数组不匹配。如果这些类型之间没有映射,您可以为字符串数组建议Postgres类型吗 代码如下: String list = "'{"; for(int i=0; i<array.length; i++) { list+=prodotti[i]+","; } list+="}'";

我有一个Postgres表,其中包含类型为
text[][]
的列。在JDBC代码中,我使用了字符串数组,但一个异常告诉我这两个数组不匹配。如果这些类型之间没有映射,您可以为字符串数组建议Postgres类型吗

代码如下:

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

        preparedStm.setString(4, list);
String list=“”{”;

对于(int i=0;i)理解多维PostgreSQL数组类型考虑如下:

当前实现不强制执行声明的数量 维度。特定元素类型的数组都是 被认为是同一类型的,无论大小或数量 因此,在
CREATE TABLE
只是一个文档;它不影响运行时 行为

在内部,类型
text[]
text[][]
与PostgreSQL相同。如果该列实际上包含二维文本数组,则必须与Java中的维度匹配。但它也可以包含一维或三维数组。PostgreSQL允许它


还注意到<代码>文本<代码> >代码>字符变化(<代码> VARCHAR )在PostgreSQL中是<强>不同的数据类型< /强>(当代码<> VARCHAR 没有长度修饰符时大致相同)。开始阅读.< /P> < P>以理解多维PostgreSQL数组类型,请考虑以下内容:

当前实现不强制执行声明的数量 维度。特定元素类型的数组都是 被认为是同一类型的,无论大小或数量 因此,在
CREATE TABLE
只是一个文档;它不影响运行时 行为

在内部,类型
text[]
text[][]
与PostgreSQL相同。如果该列实际上包含二维文本数组,则必须与Java中的维度匹配。但它也可以包含一维或三维数组。PostgreSQL允许它


还请注意,PostgreSQL中的
text
character variable
varchar
)是不同的数据类型(而
varchar
没有长度修饰符时,情况基本相同)。从阅读开始。

您可以通过插入一点代码来进一步指定您的大小写吗?
字符串
数组(或
字符串[]
)与
文本[]
)不匹配,如果可行,可以是
文本[]
,或者您应该使用
字符串[][]
在Java中。我不是说它会工作,但至少要匹配您的数据类型。您应该包括示例数据和准确的错误消息。这会使您更容易获得帮助。错误只是告诉我该列的类型为text[]但是表达式的类型是字符变化。我用引发异常的代码部分编辑了我的消息。逐字记录错误消息应该是你问题的关键部分。提到
文本
字符变化
的部分可能有助于快速解决此问题。你能通过插入一点f代码?一个
String
数组(或
String[]
)与
text[][]
不匹配,如果它可以工作,它可能是
text[]
,或者您应该使用
String[][]
在Java中。我不是说它会工作,但至少要匹配您的数据类型。您应该包括示例数据和准确的错误消息。这会使您更容易获得帮助。错误只是告诉我该列的类型为text[]但是表达式的类型是字符变化。我用引发异常的代码部分编辑了我的消息。逐字记录错误消息应该是你问题的关键部分。提到
文本
字符变化
的部分可能有助于快速解决此问题。