如何从Java列表创建SQL数组?

我正在尝试在表中插入数组,但需要将列表转换为SQL Array类型。我正在使用该Connection#createArrayOf()方法,但出现异常。

我需要传递一个类型名称,但是我不知道这是什么,而且我总是会遇到异常。该数组来自VARCHAR。

我该如何解决插入数组?

Object[] array = new Object[token.getCategories().size()];

array = token.getCategories().toArray();

pstmTokenInsert.setArray(1, conn.createArrayOf("VARCHAR", array));

org.postgresql.util.PSQLException: Could not find array type for data type VARCHAR

at org.postgresql.jdbc4.AbstractJdbc4Connection.createArrayOf(AbstractJdbc4Connection.java:73)

at org.postgresql.jdbc4.Jdbc4Connection.createArrayOf(Jdbc4Connection.java:21)

at org.apache.commons.dbcp.DelegatingConnection.createArrayOf(DelegatingConnection.java:560)

at br.ifsp.da.data.TokenDAO.insertTokens(TokenDAO.java:37)

at br.ifsp.da.data.ProcessedPageInserter.loopInsertion(ProcessedPageInserter.java:44)

at br.ifsp.da.data.ProcessedPageInserter.call(ProcessedPageInserter.java:27)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)

回答:

使用“ varchar”而不是“

VARCHAR”。参见http://grepcode.com/file/repo1.maven.org/maven2/postgresql/postgresql/9.0-801.jdbc4/org/postgresql/jdbc2/TypeInfoCache.java#TypeInfoCache.0types

以上是 如何从Java列表创建SQL数组? 的全部内容, 来源链接: utcz.com/qa/403937.html

回到顶部