如何从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 VARCHARat 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