【发布时间】:2011-02-22 05:52:38
【问题描述】:
如何将java.util.List<String> 实例转换为java.sql.Array?
【问题讨论】:
如何将java.util.List<String> 实例转换为java.sql.Array?
【问题讨论】:
使用connection.createArrayOf(...)
例如:
final String[] data = yourList.toArray(new String[yourList.size()]);
final java.sql.Array sqlArray = connection.createArrayOf(typeName, data);
statement.setArray(position, sqlArray);
typeName 是:
数组元素映射到的类型的 SQL 名称。 typeName 是数据库特定的名称,可以是内置类型、用户定义类型或该数据库支持的标准 SQL 类型的名称。这是 Array.getBaseTypeName 返回的值
如 cmets 中所述,这是 Java 1.6。对于旧版本,您不能以独立于驱动程序的方式创建它。您应该只获取 数组,而不是创建它们。如果您愿意,您可以从您的 jdbc 驱动程序中实例化实现类,但这是不可移植的。
【讨论】:
createArrayOf 的类型参数是元素类型,而不是数组类型,因此您可能想要“varchar”或“text”之类的东西。 VARIADIC 是函数参数修饰符,而不是类型说明符。
【讨论】: