映射PostgreSQL文本[][]类型和Java类型
我有一个Postgres表,其中包含类型为映射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+="}'";
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[]但是表达式的类型是字符变化。我用引发异常的代码部分编辑了我的消息。逐字记录错误消息应该是你问题的关键部分。提到文本
和字符变化
的部分可能有助于快速解决此问题。