【发布时间】:2023-03-04 17:18:01
【问题描述】:
我正在尝试构建从 Scala 到 JDBC callableStatements 的接口。大多数情况下,它很简单,Lists 除外。
我需要能够获取某种类型的 Scala List,并将其转换为可以传递给 statement.setArray(type, array) 的 Java 数组,但我没有任何运气(部分原因是我不知道Java 和 JDBC 非常好)。
这就是我想要做的:
for (parameter <- ps.parameters) {
case GPArrayIn(None, t) => callableStatement.setNull(index, t)
case GPIn(v: Some[_], Types.INTEGER) => callableStatement.setInt(index, v.get.asInstanceOf[Int])
case GPIn(v: Some[_], Types.VARCHAR | Types.LONGVARCHAR) => callableStatement.setString(index, v.get.asInstanceOf[String])
case GPArrayIn(v: Some[List[_]], Types.INTEGER) => callableStatement.setArray(Types.INTEGER, ???? )
case GPArrayIn(v: Some[List[_]], Types.VARCHAR | Types.LONGVARCHAR) => callableStatement.setArray(Types.VARCHAR, ???? )
...
对于简单的值来说这很简单,但是当涉及到 setArray() 调用时,我就卡住了。
非常感谢任何建议。被困在这小时...
【问题讨论】:
-
请注意,大多数驱动程序对 Array 的支持充其量是参差不齐的(如果数据库本身完全支持它们)。
标签: java arrays scala jdbc callable-statement