Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java H2:getArray只返回一个元素_Java_Sql_Arrays_Jdbc_H2 - Fatal编程技术网

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放入():)。