Java H2:getArray只返回一个元素
我有下表:Java H2:getArray只返回一个元素,java,sql,arrays,jdbc,h2,Java,Sql,Arrays,Jdbc,H2,我有下表: CREATE TABLE "mytable" ( ... "columns" ARRAY NOT NULL, ... ); 我通过H2 web控制台手动在阵列中插入元素: INSERT INTO "mytable"(..."columns"...) VALUES (...,'{''col1:uuid'',''col2:id'',''col3:firstName'',''col4:middleName'',''col5:lastName''}',...); 现在我尝试从jav
CREATE TABLE "mytable" (
...
"columns" ARRAY NOT NULL,
...
);
我通过H2 web控制台手动在阵列中插入元素:
INSERT INTO "mytable"(..."columns"...) VALUES
(...,'{''col1:uuid'',''col2:id'',''col3:firstName'',''col4:middleName'',''col5:lastName''}',...);
现在我尝试从java获取元素数组
Object[] colArray=(Object[]) rs.getArray("columns").getArray();
System.out.println("Test:"+colArray.length);//returns 1. all columns are in one string.
我的错误是什么?要使用类型数组插入到列中,请使用以下语法:
INSERT INTO
"mytable"("columns")
VALUES
(
(
'col1:uuid',
'col2:id',
'col3:firstName',
'col4:middleName',
'col5:lastName'
)
);
请检查您的数据
SELECT ARRAY_LENGTH("columns") FROM "mytable"
不,没用。在resultset中,我只有一行和所有列。我想问题在于如何将数组插入表中。好的,我明白了。您是否尝试过从docs
insert插入“mytable”(“列”)值(('col1:uuid'、'col2:id'、'col3:firstName'、'col4:middleName'、'col5:lastName'))
然后通过从“mytable”中选择数组长度(“列”)查看结果。是的,您是对的。编辑答案。问题在于将{}
替换为()
。这是用于插入数组或H2?ty的常规SQL规则。我想是的,我读了它,上面写着使用一个值列表(1,2)
。诀窍是将值1、2放入():)。